UDP协议发送数据:UDP协议接收数据:UDP协议收发数据注意事项

4 UDP协议发送数据:

DatagramSocket:是发送和接收的类

DatagramPacket:此类表示数据报包()

DatagramSocket();创建Socket对象并随机分配端口号

DategramSocketint 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(bysbys.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 :端口号已经被绑定了,端口号不能重复(自己运行两个会造成重复,也不能和系统的其他进程的端口号重复)

你可能感兴趣的:(一起学习网络协议UDP-TCP)