首先,我不太了解网络编程...多个端口的多个线程?
因此,我有一个程序(进程)需要监听3个端口...两个是TCP和另一个UDP。
两个TCP端口将要接收大量的数据,每隔一段时间(可以是少至每5分钟或频率高达每20秒)。第三个(UDP)端口正在接收不变的数据。现在,让这些在不同的线程上进行监听是否有意义?
举例来说,当我收到的TCP端口的一个数据量很大的,我不希望我的UDP流中断做......是网络编程这些共同关心的问题?
谢谢你们......如果我不清楚,请随时提出澄清问题。
我将在Windows上使用Boost库,如果它有任何方位。
编辑:再次看完这个,我才意识到我不是问一个具体问题哈哈...我想我只是在寻找对这个问题的一些想法/主意/指导,以及如何管理多个连接。谢谢
我建议你遵循的一个的意见“助推:ASIO /选择/ Windows的完成端口API”和“线程池”的答案(和标记为正确)。请注意,对于您的应用程序,每个端口执行1个线程是最简单的实现。虽然你可能会说今天你永远不会需要超过4-6个套接字,但有一天你可能需要这个应用程序来扩展到更多的套接字。所以你可能会救自己(或跟随你的人)在今天使用线程池来解决问题。 – jmucchiello 2009-09-27 06:04:02
对这个问题的回答有点令人生气。每个人似乎都认为你想建立一个Web服务器。我不知道答案(这就是为什么这只是一个评论),但我怀疑,如果UDP流的吞吐量很高,并且您希望避免丢弃UDP数据包,那么您确实希望它能够运行在不同的处理器上。 – 2011-01-20 20:37:08