2010-07-01 126 views
2

我正尝试在C#上使用UDP编写客户端 - 服务器控制台应用程序。 我有一个问题。 所以,当我发送命令从客户端到服务器 - 服务器必须有一个读IP地址。 客户端必须从服务器获得一些设置,但在这种情况下,客户端也必须具有真正的IP地址。其他应用程序(如游戏)不需要客户端真实IP。我必须以这种方式工作?UDP客户端 - 服务器问题

回答

0

游戏既可以使用带有公共IP的主机作为服务器,也可以使用服务器作为服务器。

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

在C#中,您可以使用TCP的NetworkStream类和UDP的UdpClient

+3

UDP是一种数据报协议,NetworkStream是基于流的 - 即TCP。我相信NetworkStream不会使用UDP – 2010-07-01 07:09:29

+0

糟糕,你当然绝对正确 - 错过了UDP部分。那就是'UdpClient'! – 2010-07-01 07:26:47

+0

谢谢,这很有用 – user380798 2010-07-01 21:22:35

0

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

0

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