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

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

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


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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值