当前位置:  开发笔记 > 编程语言 > 正文

多个线程用于多个端口?

如何解决《多个线程用于多个端口?》经验,为你挑选了1个好方法。

首先,我不太了解网络编程......

所以,鉴于此,我有一个需要监听3个端口的程序(进程)......两个是TCP,另一个是UDP.

这两个TCP端口将每隔一段时间接收大量数据(可能只有每5分钟或每20秒一次).第三个(UDP)端口正在接收常量数据.现在,将这些监听到不同的线程是否有意义?

例如,当我从其中一个TCP端口收到大量数据时,我不希望我的UDP流中断...这些是网络编程的常见问题吗?

谢谢你们......如果我不清楚,请随时提出澄清问题.

如果有任何影响,我将在Windows上使用Boost库.

编辑:再次阅读之后,我意识到我不是在问一个特定的问题大声笑......我想我只是在寻找关于这个问题以及如何管理多个连接的一些想法/想法/指导.谢谢



1> janm..:

通常,除非必要,否则请避开线程.在现代机器上,通过使用单个线程并使用I/O就绪/完成功能,您将获得更好的性能.在Windows中,这是IO完成端口,在Mac OS X和FreeBSD:kqueue的(2),在Solaris上:事件端口,在Linux的epoll,在VMS QIO.等等.

在boost中,这是由boost :: asio抽象的.

线程有用的地方是必须进行重要处理或执行阻塞操作系统调用的地方,这会给网络处理的其余部分增加不可接受的延迟.


垃圾!当您扩展时,如果每个插槽有一个线程,则套接字的性能将显着下降.这种架构有很多例子,包括大多数现代Web服务器.对于较老的,众所周知的检查,请参阅:http://www.kegel.com/c10k.html您是否真的试图扩展这些东西?
推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有