【问题标题】:UDP client-server questionUDP客户端-服务器问题
【发布时间】:2010-07-01 15:51:51
【问题描述】:

我正在尝试使用 UDP 在 C# 上编写客户端-服务器控制台应用程序。 我有一个问题。 因此,当我从客户端向服务器发送命令时 - 服务器必须具有读取的 IP 地址。 客户端必须从服务器获取一些设置,但在这种情况下客户端也必须有真实的 IP 地址。游戏等其他应用不需要客户端真实IP。我必须怎么做才能让它以这种方式工作?

【问题讨论】:

    标签: c# client udp


    【解决方案1】:

    游戏要么使用具有公共 IP 的主机作为服务器,要么使用服务器本身作为服务器。

    具有私有 IP 的客户端与服务器建立连接,然后服务器使用该连接将数据返回给客户端(类似于浏览器)。

    在 C# 中,您可以将 NetworkStream 类用于 TCP,将 UdpClient 用于 UDP。

    【讨论】:

    • UDP 是一种数据报协议,NetworkStream 是基于流的——即 TCP。我相信 NetworkStream 不适用于 UDP
    • 哎呀,你当然是完全正确的 - 错过了 UDP 部分。 UdpClient 就是这样!
    【解决方案2】:

    如果我正确理解您的问题:您可以使用Socket.ReceiveFrom,它会告诉服务器发送请求的客户端的 IP 地址。

    【讨论】:

      【解决方案3】:

      服务器使用 Socket.BeginReceiveFrom / EndReceiveFrom 获取客户端的 IP 地址。如果服务器需要回复,则使用 IPEndPoint。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-22
        • 2012-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-26
        相关资源
        最近更新 更多