UDP套接字
来源:互联网 发布:各国语言翻译软件 编辑:程序博客网 时间:2024/06/06 20:53
UDP 提供了一种不同于TCP的端到端服务,UDP 协议实际只实现两个功能:
(1),在IP协议的基础上添加了另一层地址。
(2),对数据在传输过程产生过程中进行错误校验,并抛弃已经损坏的数据。
UDP与TCP的不同点:
(1), UDP 套接字在使用前不需要进行连接。
(2),UDP 套接字与TCP套接字对信息边界的处理方式不同,UDP 套接字将保留边界信息。
(3),UDP 协议所提供的端到端的传输服务是尽力而为的,即UDP 套接字将尽可能的传送信息,但并不保证信息一定能成功到达目的
地址,而且信息到达的顺序与其发送顺序不一定一致。
1. DatagramPacket
与TCP协议发送和接受字节流不同,UDP终端交换的是一种称为数据报文的自包含信息。
发送信息时,首先要有一个DatagramPacket的实例,然后将这个实例作为参数传递给DatagramSocket
类的send()方法。
2. UDP客户端
UDP 客户端首先向被动等待联系的服务器端发送一个数据报文。
(1),创建一个DatagramSocket实例,可以选择对本地地址和端口号进行设置。
(2),使用DatagramSocket类的send()和receive()方法来接收和发送DatagramPacket实例,进行通信。
(3),通信完成后,使用DatagramSocket类的close()方法来销毁该套接字。
与Socket类不同,使用DatagramSocket实例在创建时并不需要指定目的地址,其实这也是TCP协议和UDP协议的最大不同点之一。
在进行数据交换前,TCP套接字必须与特定的主机和另一个端口号上的TCP套接字建立连接,之后在连接关闭前,该套接字就只能与相连
的套接字通信。UDP套接字在通信前不需要建立连接,每个数据包都可以发送或接收于不同的目的地址。
使用UDP协议的一个后果就是数据报文可能丢失。
3,UDP服务器端
与TCP服务器一样,UDP服务器的工作是建立一个通信终端,并被动等待客户端发起连接。但由于UDP是无连接的,UDP通信通过客户端
的数据报文初始化,并没有TCP中建立连接那一步。
(1),创建一个DatagramSocket实例,指定本地端口号,并可以选择指定本地地址。此时服务器已经准备好从任何客户端接收数据报文。
(2),使用DatagramSocket类的receive()方法来接收一个Datagramsocket实例,当receive()返回时,数据报文就包含了客户端的地址,
这样我们就知道回复信息发送到什么地址了。
(3),使用DatagramSocket类的send()和receive()方法来接收或发送DatagramPacket实例,来进行通信。
与UDP客户端不同的是,UDP服务器必须显示的设置它的本地端口号,并使客户端知道该端口,否则客户端就不知道把信息发送到什么位置了。
UDP 服务器为所有通信使用同一个套接字,这点与TCP服务器不同,TCP服务器为每个成功返回的accept()方法创建一个新的套接字。
- UDP套接字
- UDP套接字
- UDP套接字编程
- 6、UDP套接字
- UDP协议/套接字
- UDP套接字
- UDP套接字编程
- 理解UDP套接字
- UDP套接字编程
- 2.3 UDP套接字
- UDP套接字编程
- UDP套接字基础
- linux Udp 套接字
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- UDP套接字编程
- .net实现webservice简单实例分享
- HDU 2181 哈密顿绕行世界问题解法
- 路由器MTU值对于网络通讯的影响
- 移动web开发,12个触摸及多点触摸事件常用Js插件
- Samsung LCD接口篇
- UDP套接字
- Java语言实现简易计算器(1)界面
- python multiprocessing logging
- 操作系统中的缓冲(buffer)
- Activity间传递数据
- jsp操作数据库,并将结果分页显示
- 系统架构领域的一些学习材料
- Windows下查看进程与线程的相关工具
- PHP Cookie管理