UNIX网络编程--实现并发UDP服务器

大多数UDP服务器程序是迭代运行的,即服务器等待一个客户请求,读入这个请求,处理这个请求,送回其应答,接着等待下一个客户请求。然而当客户请求的处理需消耗用过长时间时,我们就得设计一个并发的UDP服务器。以下为实现的方法:

 1. 该方法比较简单,读入一个客户请求并发送一个应答后,与这个客户就不再相关了。这种情形下,读入客户请求的服务器可以fork一个子进程并让子进程去处理该请求。该“请求”(即请求数据报的内容以及含有客户协议地址的套接口地址结构)通过fork复制的内存映像传递给子进程。子进程然后把它的应答直接发送给客户。实现看下图

UNIX网络编程--实现并发UDP服务器_第1张图片

 2. 该方法与客户交换多个数据报。让服务器为每个用户创建一个新的套节口,在其上bind一个临时端口,然后使用该socket发送对于该客户的所有应答,这个办法要求客户查看服务器第一个应答中的源端口号,并把本请求的后续数据报发送给该端口。实现看下图

UNIX网络编程--实现并发UDP服务器_第2张图片

你可能感兴趣的:(UNIX网络编程--实现并发UDP服务器)