前端之家收集整理的这篇文章主要介绍了
java网络编程(UDP详解),
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
UDP详解@H_502_3@
502_3@一,TCP/IP协议栈中,TCP协议和UDP协议的联系和区别?
联系:
TCP和UDP是TCP/IP协议栈中传输层的两个协议,它们使用网络层功能把数据包发送到目的地,从而为应用层提供网络服务。
区别:
1. TCP是面向连接的传输。UDP是无连接的传输。
2. TCP保证数据按照发送顺序到达,UDP无法保证。
4. TCP是可靠性传输,而UDP则是不可靠传输。
5. UDP因为少了很多控制信息,所以传输速度比TCP速度快。
6. TCP适合用于传输大量数据,UDP适合用于传输小量数据。
举例:502_3@的server和client之间通信就好比502_3@。502_3@的server和client之间的通信就像502_3@。
@H_502_3@二,UDP通讯协议的特点:
1. 将数据极封装为数据包,面向无连接。
2. 每个数据包大小限制在64K中
3.因为无连接,所以不可靠
4. 因为不需要建立连接,所以速度快
5.udp 通讯是不分服务端与客户端的,只分发送端与接收端。
三,怎样来编写UDP?
发送数据步骤:
1.创建socket服务
2.创建数据包
3.将数据封装到数据包中,添加ip和端口以及数据
4.发送
5.关闭资源
接收数据步骤:
1.创建socket服务,并监听端口
2.创建数据包,用来接收数据
3.用socket接收数据到数据包中
4.从数据包中取出数据
5.关闭资源
四,代码实现UDP通信
代码@H_502_3@
502_3@ 502_3@502_3@502_3@ 502_3@502_3@502_3@ 502_3@502_3@502_3@ 502_3@502_3@502_3@ 502_3@502_3@502_3@
502_3@ 502_3@ 502_3@502_3@502_3@ 502_3@ Scanner sc= 502_3@502_3@502_3@ 502_3@ 502_3@ 502_3@ main(String[] args) 502_3@502_3@502_3@ 502_3@套接字@H_502_3@
502_3@ DatagramSocket ds = 502_3@502_3@502_3@ 502_3@502_3@
502_3@ 502_3@(502_3@502_3@502_3@ System.out.println("请输入要发送的信息:"502_3@502_3@ String info =502_3@502_3@ 502_3@ []buf =502_3@502_3@ DatagramPacket dp = 502_3@502_3@502_3@ InetAddress.getByName("localhost"),152502_3@502_3@ 502_3@502_3@
502_3@ 502_3@502_3@ 502_3@502_3@
502_3@ 502_3@("886"502_3@502_3@ 502_3@502_3@502_3@ 502_3@502_3@ 502_3@502_3@ 502_3@关闭套接字@H_502_3@
502_3@ 502_3@502_3@ 502_3@502_3@ }
2.服务端代码@H_502_3@
502_3@ 502_3@502_3@502_3@ 502_3@502_3@502_3@ 502_3@502_3@502_3@ 502_3@502_3@502_3@
502_3@ 502_3@ 502_3@502_3@502_3@ 502_3@ 502_3@ 502_3@ main(String[] args) 502_3@502_3@502_3@ 502_3@套接字@H_502_3@
502_3@ DatagramSocket ds = 502_3@ DatagramSocket(152);502_3@502_3@502_3@ 502_3@502_3@
502_3@ 502_3@(502_3@502_3@502_3@ 502_3@ [] buf =502_3@ 502_3@[1024502_3@502_3@ DatagramPacket dp = 502_3@502_3@502_3@ 502_3@502_3@
502_3@ 502_3@502_3@ 502_3@502_3@
502_3@ 502_3@[] data =502_3@502_3@ 502_3@获取客户端IP和主机名@H_502_3@
502_3@ InetAddress ip =502_3@502_3@ String host =502_3@502_3@ 502_3@502_3@
502_3@ String info = 502_3@ String(buf,0502_3@502_3@ System.out.println("来自"+host+"的消息是:"+502_3@502_3@ 502_3@502_3@ 502_3@关闭套接字@H_502_3@
502_3@ 502_3@502_3@ 502_3@502_3@ }
502_3@
链接:https://pan.baidu.com/s/1KWR9JHQ20uy0mx-1CIBwvA提取码:3dn8@H_502_3@
原文链接:https://www.f2er.com/java/67038.html