C#中的套接字通信 - IP端口

时间:2010-03-29 13:45:34

标签: c# sockets port

我正在本地网络中测试我的套接字程序。

服务器和客户端程序在单独的计算机上运行。

服务器程序套接字绑定为:serverSocket.Bind(new IPEndPoint(IPAddress.Parse(“127.0.0.1”),8999));

客户端程序(在另一台计算机上)连接为:clientSocket.Connect(IPAddress.Parse(“192.168.2.3”),8999);

为什么客户端无法与服务器通信? 我是否需要进行一些防火墙配置或类似的东西? 或者我是否错误地将Server Ip写入客户端? (我是从cmd->服务器的ipconfig获得的)

2 个答案:

答案 0 :(得分:3)

您只绑定到本地127.0.0.1 IP,因此您的服务器只能从同一台计算机访问。请尝试以下方法:

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

答案 1 :(得分:2)

因为您的服务器绑定到localhost环回地址127.0.0.1.这意味着除了服务器上运行的之外什么都不能与套接字通信。

你需要:

  • 验证服务器与客户端(192.168.2.0192.168.0.0)在同一子网上的网络连接 - 将其称为“公共”IP地址
  • 将套接字绑定到服务器的“公共”IP地址,或将套接字绑定到所有接口 - 通常使用特殊IP地址0.0.0.0