本文共 1785 字,大约阅读时间需要 5 分钟。
UDP (User Datagram Protocol), 中文名是用户数据报协议,是OSI(Open SystemInterconnection,开放式系统互联) 参考模型中一种无连接的传输层协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去! UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。所以UDP效率高,不安全。
下面我们来看下UDP编程的代码:public class Reciver { //接收方 public static void main(String[] args) throws IOException { //1.开放一个端口 DatagramSocket socket = new DatagramSocket(9999); //2.准备一个容器接收 byte[] bytes = new byte[100]; //3.等待接受包 DatagramPacket packet = new DatagramPacket(bytes,bytes.length); System.out.println("等待发送方的消息。。。。。"); //4.循环接受消息,读取包中的消息 while (true){ //将消息接收到包中 socket.receive(packet); //获取包中消息 byte[] data = packet.getData(); //解析包中数据 String s = new String(data, 0, packet.getLength()); System.out.println("对方向你发来消息:"+s); if ("exit".equals(s)){ break; } } //5.释放资源 socket.close(); }}
public class Sender { //发送方 public static void main(String[] args) throws IOException { //1.指定端口 DatagramSocket socket = new DatagramSocket(); //2.指定对方ip地址 InetAddress address = InetAddress.getByName("127.0.0.1"); //3.准备数据,循环发送 while (true){ //录入发送的内容 Scanner scanner = new Scanner(System.in); System.out.println("请输入你要发送的内容:"); String s = scanner.nextLine(); //数据打包,数据需要先转成字节类型 byte[] bytes = s.getBytes(); DatagramPacket packet = new DatagramPacket(bytes,bytes.length,address,9999); //发送数据包 socket.send(packet); if ("exit".equals(s)){ break; } } //4.释放资源 socket.close(); }}
转载地址:http://qxiwi.baihongyu.com/