介绍使用数据报套接字编写基于UDP协议的网络通信程序的基本方法。数据报套接字编程包括两种模型—C/S模型和P2P模型。
数据报套接字使用UDP协议进行通信,而UDP是一种无连接的通信协议,只能发送含有目的地址的独立数据报,所以在数据报套接字编程中,每次发送数据都需要指定目的地址。指定发送目的地址的方式有两种:一种是使用sendto()函数发送数据,可以在该函数的参数中指定目的地址;另一种是在发送数据之前,先调用connect()函数为数据报套接字指定通信对端的地址,之后每次发送数据时就不必再指定目的地址了。
使用数据报套接字编程有通信模式可以选择:一种是客户/服务器模式,即C/S模型;另一种是无客户与服务器之分的对等模式,即P2P模式。
客户/服务器
在客户/服务器模式中,双方的通信过程必须由客户一方首先向服务器发送一条信息来发起,因此必须提前知道服务器方的IP地址和所使用的UDP端口号。而服务器端在通信开始之前并不知道通信对端的任何地址信息,因而无法发起通信,但通信所用的本地IP地址和UDP端口号在通信开始前必须与套接字绑定。