2012-11-07 98 views
0

我需要通过TCP监听大约100个不同的端口。看看C#中的TcpListener类,它显然只监听一个端口。是否有意义创建100个不同的TcpListener实例,每个实例都有自己的端口。用TcpListener监听多个端口

我不认为它是一个干净的解决方案,但它似乎是唯一的选择。

+0

一个奇怪的要求,但为什么不。只是确保它不是[XY问题](http://www.perlmonks.org/index.pl?node_id=542341) –

+0

基本上,我有不同的SIM卡发送数据,所有数据都具有相同的IP,所以我不能听在一个端口上使用不同的IP(像往常一样)。相反,我在应用程序上设置不同的端口,从数据发送的位置开始,因此我可以知道它是哪一个端口。 – seedg

+0

你有没有办法让你的设备发送某种ID作为它给你的消息的一部分?即通过消息识别,并且全部去一个端口?当我的众多设备隐藏在NAT后面时,这就是我所做的。 – andrew

回答

0

是 - 您需要100 TcpListener s。最好的办法是把它们放在一个列表中(初始化循环通过一个端口列表),并将它们作为一个循环中的单个实体来管理。

+0

不要简单地听一个循环,学会使用i)BeginAccept ...或ii)Accept ..Async,其他表现。 – Todd