2012-04-20 29 views
1

嗨, 我試圖將我的聊天客戶端連接到我的服務器,但我不斷收到錯誤。我有一臺在互聯網上發佈的機器上運行的聊天服務器,它具有固定的IP地址,並且正在端口5001上運行。當我的聊天客戶端嘗試連接到該服務器時,我收到錯誤消息。這是養錯誤如下通過互聯網設置TCP/IP連接問題

ipAddr = IPAddress.Parse(txtIp.Text); 
    // Start a new TCP connections to the chat server 
    tcpServer = new TcpClient(); 
    tcpServer.Connect(ipAddr, 5001); 

當我在我的本地機器與本機IP同時運行我的聊天客戶端&服務器的行,它的工作原理。 請告訴我我需要更改代碼,因爲我的聊天服務器&客戶端都可以通過互聯網進行通信。謝謝

+3

這可能是網絡問題,而不是代碼問題。你有沒有路由器/防火牆? – Nettogrof 2012-04-20 13:58:19

+1

實際的錯誤信息會有所幫助。 – jgauffin 2012-04-20 14:02:35

+0

如何連接主機名? 'tcpClient.Connect(「hostname」,5001);' – Damith 2012-04-20 14:03:37

回答

1

如果首先通過某些計算機網絡,則固定IP可能不夠。 如果網絡簡單,或者它比較複雜,您可能需要轉發端口,但它可能擁有自己的直接線路但已關閉端口,因此您必須通過系統內的防火牆以及可過濾流量的可能硬件打開它們。

它可能不是代碼問題。

當您創建服務器套接字時,嘗試將其綁定到IPAddress.Any,因爲如果將其綁定到特定設備,它也可能是問題的根源。

+1

你怎麼知道沒有看到實際的錯誤信息? – 2012-04-20 14:15:12

+0

因爲基於他的話,他使用在本地主機上運行的客戶端和服務器代碼,並且它工作,所以這意味着代碼本身沒有問題,但問題可能基於我在此答案中描述的網絡問題。 – moka 2012-04-20 15:29:15

+0

我們來了一臺登臺服務器,在上傳到主服務器之前,我們經常託管asp.net站點進行測試。登臺服務器有固定的IP。在託管我們的頁面之後,我們可以通過像192.168.11.12/home.aspx這樣的固定IP訪問頁面。這個ip只是一個例子,不是真正的。所以我想當我們有固定的IP,那麼我們可以在那裏運行聊天服務器,客戶端應用程序可以在我的機器上運行,並可以通過該IP連接聊天服務器。當我們運行聊天客戶端並嘗試通過該ip連接到服務器時,我們得到錯誤。稍後我會發布該錯誤。 – Thomas 2012-04-20 18:06:15