2012-01-16 20 views
1

連接到端口**我沒有與插座和網絡開發了豐富的經驗 - 所以我很抱歉,如果這個問題不太好......使用的TcpListener類

我有一些硬件都連接到我的電腦(我把這個硬件看作網卡)。 此硬件正在使用TCP協議發送一些字符串(始終發送到端口551)。

新的,我需要在我的應用程序中得到這些字符串。 所以我想用「的TcpListener」對象,聽取本地主機協議 - 偵聽端口551

MSDN我知道我可以初始化「的TcpListener」對象,因此它始終偵聽端口551(第一構造函數)。

,但硬件也連接到端口551 - 因爲它需要被髮送琴絃 -

所以,我該怎麼辦呢? 我的基本誤解是什麼?

+1

是接受裝置包含端口551上的連接,或僅連接到使用該端口的其他連接?如果只是連接到其他人,它實際上並不使用該端口本身。這就像您的網絡瀏覽器連接到端口80上的某個服務器,瀏覽器不使用端口80,服務器。 – 2012-01-16 12:07:23

+0

該設備被視爲網卡 - 並使用某個IP地址(192.168.0.1)定義。所以,我的電腦上現在有兩塊網卡 - (第二塊是我用來連接互聯網的普通網卡) - – Yanshof 2012-01-16 12:45:57

+1

如果它充當具有特定IP地址的網卡,那麼您可以創建一個監聽套接字(例如使用'TcpListener'類)綁定到特定的IP地址。 – 2012-01-16 13:09:09

回答

1

首先,確保我有正確的設置:

所以,你有一些硬件來進行發送端口551,說在IP地址爲192.168.1.1。 您添加了第二張卡片,例如IP地址192.168.1.2。

爲了傾聽192.168.1.1是送你需要:

1)確保192.168.1.1在發送其TCP包到端口551上192.168.1.2。

2)打開的TCPListener,裝訂聽者192.168.1.2:

IPAddress localAddr = IPAddress.Parse("192.168.1.2"); 
TcpListener server = new TcpListener(localAddr , 551); 

3)坐並等待,直到服務器發現的東西來在該端口上的:

server.Start(); 
... 
server.AcceptTcpClient();