UDP-UDP 并发
我写了一个UDP服务器,服务端口固定,需要能力接受不同客户端的大量的并发数据,应该如何是实现
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我写了一个UDP服务器,服务端口固定,需要能力接受不同客户端的大量的并发数据,应该如何是实现
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
可以参考一下UNIX 网络编程第一卷(第三版是482页),里面有讲UDP并发的实现,相对TCP来说要复杂,所以不常用。
upd一般没有使用并发的,因为client不用关注数据是否真正到达了,只是发出去就完事了
多CPU才有并行。
假设你的服务器上有8个逻辑CPU,那么你应该开启1个线程专门负责(select(poll)+recvmsg)收包,然后分发给7个线程处理。
分发线程和处理线程之间的数据传递可以采用免锁的单生产者单消费者队列就可以了。
至于如何分发要根据业务需要确定,比如根据简单轮转、根据客户端id分发等等。
信息不多,不知道你的业务模型,以上思路,仅供参考。
如果真想做的话,服务器端要使用多线程(最好是线程池)为每个客户端的请求进行处理.
http://book.51cto.com/art/200902/109684.htm 这里有一个讲TCP 多线程处理的。