TcpListener:监听每个地址,包括GPRS IP地址

时间:2009-02-03 14:20:57

标签: c# .net networking tcp tcplistener

我们需要一个简单的遗留软件 通过端口15001使用TCP / IP进行通信。我们需要侦听端口15001 为遗留软件建立连接,然后读取它发送给我们的任何内容。

我们已经在互联网上测试了这个解决方案,它运行得很好。 但是,如果我们通过GPRS TCP / IP网络测试相同的解决方案,则不会。

已经检查了所有基础知识,我们可以ping通GPRS网络中的其他设备 并且任何防火墙都不会阻止端口15001。

所以我的TcpListener可能有问题吗?

它初始化如下:

tcpServer = new TcpListener(IPAddress.Any, TCP_PORT);

我假设它会侦听系统上每个可用的IPv4接口, 因为我使用了IPAddress.Any?

有没有人知道两个网络之间可能存在什么差异? (即使没有任何区别)如果有什么需要更改为我的TcpListener?

1 个答案:

答案 0 :(得分:12)

您需要指定要侦听的IP地址,而不是IPAddress.Any。见here。使用IPAddress.Any时,它会自动为您选择网络接口。要监听某个接口(在您的情况下是GPRS),您必须在构造函数中使用正确的IP。

This post提供了有关获取每个网址的IP地址的更多信息。

此外,如果您希望一次监听每个IP地址,则每个NIC都需要一个TcpListener。