4 UDP协议发送数据:
DatagramSocket:是发送和接收的类
DatagramPacket:此类表示数据报包()
DatagramSocket();创建Socket对象并随机分配端口号
DategramSocket(int port);创建Socket对象并指定端口号
先创建发送端Socket对象:
DategramSocket ds = new DategramSocket():
创建数据并打包:
String s = “hello udp”; 创建字符串数据
Byte[] bys = s.getBytes(); 转换成byte类型数组
Int length = bys.length(); 接收的长度
InetAddress address = InetAddress.getByName(“javaName”);//发送给的主机名字
Int port = 88888; //端口号
//打包 byte类型信息 长度 目的地ip地址值 目标端口号
DatagramPacket dp = new DatagramPacket(bys,length,address,port);
发送数据:
调用dategramSocket的发送方法
ds.send(dp);
释放资源:
ds.close();
5 UDP协议接收数据:
//创建接收对象 (在收件的时候要给出端口号,为了让发送端找到指定的接收端)
DategramSocket ds = new DatagramSocket(88888);
//接收数据:
Byte[] bys = new byte[1024];
DatagramSocket dp = new DatagramSocket(bys,bys.length);
ds.receive(dp);//阻塞
//解析数据:
InetAddress address = dp.getAddress();
Byte[] date = dp.getDate();
Int length = dp.getLength();
//输出数据
Syso(“sender——》”+address.getHostAddress());
Syso(new String(date,0,length));
//释放资源
6 UDP协议收发数据注意事项
127.0.0.1 地址一直指的是自己的ip地址
端口号错误,数据可以正常发出,不会出现异常,但是收不到数据
Address already in use :端口号已经被绑定了,端口号不能重复(自己运行两个会造成重复,也不能和系统的其他进程的端口号重复)