首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

《Java TCP/IP Socket编程》读书笔记(四)

2013-01-28 
《Java TCP/IP Socket编程》读书笔记(4)2.3 UDP套接字UDP协议提供了一种不同于TCP协议的端对端服务,实际上UD

《Java TCP/IP Socket编程》读书笔记(4)
2.3 UDP套接字

UDP协议提供了一种不同于TCP协议的端对端服务,实际上UDP只实现了两个功能:1)、 在IP协议的基础上添加了另一层地址(端口)2)、对数据传输过程中可能产生的错误进行了检测,并抛弃了已损坏的数据。

UDP套接字与TCP套接字的不同点:

1. UDP协议在使用前不需要进行连接。

2. UDP协议保存边界信息。

2.3.1 UDP客户端

UDP客户端首先向被动等待联系的服务器发送一个数据报文。一个UDP报文要执行以下三步。

1. 创建一个DatagramSocket实例,可以选择对本地地址和端口号进行设置。

2. 使用DatagramSocket类的send() 和 receive()方法来发送和接收DatagramPacket实例,进行通信。

3. 通信完成后,使用DatagramSocket类的close()方法来销毁该套接字。


DatagramSocket创建的时候不需要指定目的地址。因为UDP通信前不需要进行连接。每个数据报可以发送到或者接收于不同的目的地址。

UDP协议的一个后果是会出现数据报文丢失。为了避免这个问题,可以设置最大阻塞时间。

下面一个UDP客户端的例子

1. 创建一个DatagramSocket实例,指定本地端口号,并可以选择指定本地地址。此时,服务器已经准备好从任何客户端接收数据报文。

2. 使用DatagramSocket类的receive()方法来接收一个DatagramPacket实例。当receive()方法返回时,数据报文就包含了客户端的地址,这样我们就知道了回复信息应该发送到什么地方。

3. 使用DatagramSocket类的send() 和receive()方法来发送和接收DatagramPackets实例,进行通信。


下面的例子是使用UDP将客户端发送过来的消息会发给客户端的。


在启用客户端发送数据

《Java TCP/IP Socket编程》读书笔记(四)

再查看服务器端

《Java TCP/IP Socket编程》读书笔记(四)

热点排行