TCPListener问题 - C#.Net CF 3.5

时间:2011-03-22 21:44:56

标签: .net tcpclient tcplistener windows-mobile-6.1

我有一个使用TcpListener启动服务器的Windows Mobile 6应用程序,我无法获得任何外部连接以便能够连接到服务器。 Windows移动设备能够很好地连接到外部服务器,但反过来似乎被某些东西阻止。无论外部设备是通过以太网网络适配器连接的另一台Windows移动设备或PC,还是与PC的ActiveSync连接,都可以阻止与服务器的所有传入连接。

以下是设置TcpListener的代码:

IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1131);
_connListener = new TcpListener(localEndPoint);
_connListener.Start();
TcpClient newConnection = _connListener.AcceptTcpClient();

应用程序在accept命令上保持阻塞状态,因为它永远不会从任何客户端接收连接。 我也尝试了网络适配器的ipaddress,以及IPAddress.Any,但结果是一样的。

在PC上运行的客户端应用程序无法使用以下行(其中192.168.33.31是使用以太网网络适配器连接时移动设备的IP地址):

TcpClient testClient = new TcpClient();
testClient.Connect("192.168.33.31", 1131);

.Connect上发生异常,并声明“已建立的连接已被主机中的软件中止。”

存在网络连接,因为我们可以双向ping。我唯一能想到的是Windows Mobile 6有一些阻止传入网络连接的设置,但我还没有找到任何有关Windows Mobile传入网络连接的文档。此外,任何谷歌搜索通常没有将Windows移动设备设置为服务器,并且在Windows移动设备上运行服务器的少数相关问题未得到答复。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我通过将TcpListener绑定到网络接口的实际IP地址而不是环回地址来解决它。 (即192.168.0.100而不是127.0.0.1)。