java网络编程
UDP通信程序
UDP发送数据流程
//1. 创建发送端的Socket对象(DatagramSocket)
//DatagramSocket()构造数据报套接字并将其绑定到本地主机上的任何可用端口
DatagramSocket ds = new DatagramSocket()
//2. 创建数据,并把数据打包
//DataframPacket(byte[] buf, int length, InetAddress address, int port)
//构造一个数据包,发送长度为length的数据包到指定主机上的指定端口号
byte[] bys = "hello, udp, 我来了".getBytes();
int length = bys.length;
InetAddress address = InetAddress.getByName("172.19.10.8");
int port = 10086;
DatagramPacket dp = new DatagramPacket(bys, length, address, port);
//3. 调用DatagramSocket对象的方法发送数据
// void send(DatagramPacket p)从此套接字发送数据包
ds.send(dp)
//4. 关闭发送端
ds.close();
UDP接收数据流程
//1.创建接收端的Socket对象(DatagramSocket)
//DatagramSocket(int port)构造数据报套接字并将其绑定到本地主机上的指定端口
DatagramSocket ds = new DatagramSocket(1234);
//2.创建一个数据包,用于接收数据
//DatagramPacket(byte[] buf, int length)构造一个DatagramPacket用于接收长度为length数据包
byte[] bys = new byte[1024];
DatagramPacket dp = new DatagramPacket(bys, bys.length);
//3.调用DatagramSocket对象的方法接收数据
ds.receive(dp);
//4.解析数据包,并把数据在控制台显示
//byte[] getData() 返回数据缓冲区
byte[] datas = dp.getData();
int len = dp.getLength();
String dataString = new String(datas, 0, len);
System.out.println("数据是:" + dataString);
//5.关闭接收端
ds.close();
TCP通信程序
TCP发送数据
//1.创建客户端的Socket对象(Socket)
//Socket (InetAddress address, int port) 创建套接字并将其连接到指定IP地址的指定端口号
//Socket s = new Socket(InetAddress.getByName("172.19.10.8"), 100);
//Socket(String host, int port)
Socket s = new Socket("172.19.10.8", 100);
//2.获取输出流,写数据
OutputStream os = s.getOutputStream();
os.write("hello, tcp, 我来了".getBytes());
//3.关闭客户端
s.close();
TCP接收数据
//1. 创建服务器端的Socket对象(ServerSocket)
//ServerSocket(int port) 创建绑定到指定端口的服务器套接字
ServerSocket ss = new ServerSocket(100);
//Socket accept() 倾听要连接到此套接字并接受它
Socket s = ss.accept();
//2.获取输入流,读数据,并把数据显示在控制台
InputStream is = s.getInputStream();
byte[] bys = new byte[1024];
int len = is.read(bys);
String data = new String(bys, 0, len);
System.out.println("数据是:" + data);
//3.释放资源
s.close();
ss.close();