2011-03-22 128 views
1

我有一個使用TcpListener啓動服務器的Windows Mobile 6應用程序,我無法獲得任何外部連接以便能夠連接到服務器。 windows移動設備能夠連接到外部服務器,但反過來似乎被某些東西擋住了。如果外部設備是另一個Windows移動設備或通過以太網網絡適配器連接的PC或與PC的ActiveSync連接無關緊要,則所有到服務器的傳入連接似乎都被阻止。TCPListener問題 - C#.Net CF 3.5

這裏是代碼建立的TcpListener:

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

的應用程序只是擋在了接受命令的客人,因爲它從來沒有收到來自任何客戶端的連接。 我也嘗試了網絡適配器的ipaddress,以及IPAddress.Any,但結果是一樣的。

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

的異常的發生:

在PC上運行的客戶端應用程序(當使用以太網的網絡適配器連接,其中192.168.33.31是所述移動設備的IP地址)將失敗以下行。連接並指出「建立的連接被主機中的軟件中止」。

網絡連接存在,因爲我們可以ping通兩種方式。我唯一能想到的就是Windows Mobile 6有一些阻止傳入網絡連接的設置,但我還沒有找到任何有關到Windows Mobile的傳入網絡連接的文檔。此外,任何谷歌搜索通常沒有將Windows移動設備設置爲服務器,並且在Windows移動設備上運行服務器的少數相關問題未得到答覆。提前致謝。

回答

0

我有同樣的問題,我通過將TcpListener綁定到網絡接口的實際IP地址而不是回送地址來解決此問題。 (即192.168.0.100而不是127.0.0.1)。