物联网开发 5 UDP并发服务器模型 一

27 篇文章 0 订阅
3 篇文章 0 订阅

摘要:
本文将讨论UDP的并发实现机制。给出了两种实现方法。第一种是最为常见的,TFTP传输的方式。
第二种是对UDP进一步封装,以达到并发的可能。主要是采用队列、多线程的方法。后面会给出一个简单的实现例子,以供大家参考。功能方面较为简单,以后会慢慢完善。
现将思路整理如下,有兴趣的同学可以一起讨论。代码稍后公布。
本文主要是给物联网打基础,喜欢物联网的同学可以免费观看此课程:
https://blog.csdn.net/aa120515692/article/details/103723165

	众所周知,通常所见的的TCP服务器都是并发实现的,即服务同时处理多个请求,
而不是等待前一个完成再处理下一个请求,这个实现得益于TCP的listen()与connect()的分工处理机制。

而对于 UDP 没有这种监听和连接机制,所以它必须等待前一处理完成才能继续处理下一个客户的请求。
但并不是说UDP实现并发服务器是不可能的,只是与上面的实现稍有不同。

UDP服务器并发的两种方法:
一、比较常用的处理方法是:
服务器(知名端口)等待一下客户的到来,当一个客户到来后,记下其IP和port,然后同理,
服务器fork一个子进程,建立一个socket再bind一个随机端口,然后建立与客户的连接,
并处理该客户的请求。父进程继续循环,等待下一个客户的到来。在tftpd中就是使用这种技术的。

	大概的实现如下:
		for ( ; ; )
		{
		   /* 等待新的客户端连接 */
			recvform( &from_addr)
			
			
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值