2012-01-16 22 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();