DP和TCP有两个典型的区别,一个就是它不需要建立连接,另外就是它在每次收发的报文都保留了消息的边界。
server端
1、建立UDP的socket的服务,必须明确一个端口号
2
、创建数据包,用于储存接收到的数据,方便用数据包对象的方法解析这些数据
3、使用DatagramSocket的receive方法将接收到的数据存储到数据包中
4、通过数据包的方法解析数据包中的数据
5
、关闭socket服务
*/
//udpsocket服务,使用DatagramSocket对象
DatagramSocket ds=
new
DatagramSocket(
10002
);
//使用DatagramPacket将数据封装到该对象中
byte
[] buf=
new
byte
[
1024
];
DatagramPacket dp=
new
DatagramPacket(buf, buf.length);
//通过udp的socket服务将数据包发送出去,通过send方法
ds.receive(dp);
建立Socket(明确端口号),创建数据包(接收到数据的时候进行存储),接收数据报
Client端
1、创建udp传输的发送端
2、建立UDP的socket的服务
3、将要发送的数据封装到数据包中
4、通过udp的socket服务将数据包发送出去
5、关闭socket服务
DatagramSocket ds=
new
DatagramSocket(
8888
);
//监听端口
//将要发送的数据封装到数据包中
String str=
"udp传输演示,go"
;
//使用DatagramPacket将数据封装到该对象中
byte
[] buf=str.getBytes();
DatagramPacket dp=
new
DatagramPacket(buf, buf.length,InetAddress.getByName(
"192.168.1.100"
),
10002
);
//通过udp的socket服务将数据包发送出去,通过send方法
ds.send(dp);
//关闭资源
ds.close();
一般情况下,是把接收数据报这个模块放在线程的run方法中,这样就可以通过不断的循环读到对方发来的数据包了。