1、文档
2、相关问题
2.1、UDP编程
public class UDPReceiver { public static void main(String[] args) throws IOException { // 创建一个DatagramSocket对象,准备在9999端口接受数据 DatagramSocket socket = new DatagramSocket(9999); // 构建一个DatagramPacket对象,准备接受数据,一个数据包最大64K byte[] buf = new byte[1024]; DatagramPacket packet = new DatagramPacket(buf, 0, buf.length); // 调用接收方法 将通过网络传输的DatagramPacket对象填充到packet对象, // 当有数据到达时就会接收数据,没有的话阻塞等待 System.out.println("等待接收数据。。。。"); socket.receive(packet); // 将packet进行拆包 取出数据, int length = packet.getLength(); byte[] data = packet.getData(); System.out.println(new String(data, 0, length)); // 回复消息 data = "好的。明天见".getBytes(); packet = new DatagramPacket(data, data.length, InetAddress.getByName("127.0.0.1"), 9998); socket.send(packet); // 关闭资源 socket.close(); System.out.println("A端退出"); }}
public class UDPSender { public static void main(String[] args) throws IOException { // 创建一个DatagramSocket对象,准备在9998端口接受数据 DatagramSocket socket = new DatagramSocket(9998); // 将需要发送的数据 封装到DatagramPacket对象 byte[] data = "hello 明天吃火锅去?".getBytes(); DatagramPacket packet = new DatagramPacket(data, data.length, InetAddress.getByName("127.0.0.1"), 9999); socket.send(packet); // 接受从A端回复的信息 byte[] buf = new byte[1024]; packet = new DatagramPacket(buf, 0, buf.length); // 调用接收方法 将通过网络传输的DatagramPacket对象填充到packet对象, // 当有数据到达时就会接收数据,没有的话阻塞等待 System.out.println("等待接收数据。。。。"); socket.receive(packet); // 将packet进行拆包 取出数据, int length = packet.getLength(); data = packet.getData(); System.out.println(new String(data, 0, length)); // 关闭资源 socket.close(); System.out.println("B端退出"); }}