2010-03-29 33 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