2012-11-07 103 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