【问题标题】:Socket Communication in C# - IP-PortC# 中的套接字通信 - IP 端口
【发布时间】:2011-02-02 01:21:22
【问题描述】:

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

服务器和客户端程序在不同的机器上运行。

服务器程序socket绑定为:serverSocket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8999));

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

为什么客户端不能与服务器通信? 我需要做一些防火墙配置或类似的东西吗? 还是我错误地将服务器 IP 写入客户端? (我是从服务器的 cmd->ipconfig 得到的)

【问题讨论】:

  • IPEndPoint 不需要是您用来连接该服务器的 ip 吗?

标签: c# sockets port


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    因为您的服务器绑定到 localhost 环回地址 127.0.0.1. 这意味着 除了服务器上运行的内容之外没有任何东西可以与套接字通信。

    你需要:

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

    【讨论】:

      猜你喜欢
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多