2010-03-29 35 views
1

我在本地網絡中測試我的套接字程序在家裏。在C#中的套接字通信 - IP端口

服務器和客戶端程序在單獨的機器上運行。服務器程序套接字綁定爲:serverSocket.Bind(new IPEndPoint(IPAddress.Parse(「127.0.0.1」),8999));客戶端程序(在另一臺計算機上)連接爲:clientSocket.Connect(IPAddress.Parse(「192.168.2.3」),8999);

爲什麼客戶端不能與服務器通信? 我需要做一些防火牆配置或類似的東西嗎? 還是我寫錯了服務器IP到客戶端? (我從服務器的cmd-> ipconfig獲取它)

+0

不需要IPEndPoint是您用來連接到該服務器的IP嗎? – Fabian 2010-03-29 13:49:41

回答

3

您只綁定到本地127.0.0.1 IP,因此您的服務器只能從同一臺機器訪問。請嘗試以下操作:

serverSocket.Bind(new IPEndPoint(IPAddress.Any),8999));

2

因爲你的服務器綁定到本地主機環回地址127.0.0.1.這意味着什麼都沒有除了什麼是運行在服務器上可以與套接字通信。

您需要:

  • 驗證服務器在同一子網的網絡連接的客戶端(192.168.2.0192.168.0.0) - 稱之爲「公共」 IP地址
  • 您的插座綁定服務器的「公共」IP地址或將您的套接字綁定到所有接口 - 通常使用特殊IP地址0.0.0.0