UDP客户端-服务器问题
我正在尝试使用 UDP 在 C# 上编写客户端-服务器控制台应用程序。 我有一个问题。 因此,当我从客户端向服务器发送命令时,服务器必须具有读取的 IP 地址。 客户端必须从服务器获取一些设置,但在这种情况下客户端也必须有真实的 IP 地址。其他应用程序(例如游戏)不需要客户端真实IP。我必须做什么才能让它以这种方式工作?
I'm trying to write a client-server console application on C# using UDP.
And i have one question.
So, when i send command from client to server - servers must have a read IP adress.
client must get some settings from server,but in this case client must have real IP adress too. Other application like games do not require client real IP. What must do I to it work in such a way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
游戏要么使用有公网IP的主机作为服务器,要么使用服务器本身作为服务器。
具有私有IP的客户端与服务器建立连接,然后服务器使用该连接将数据返回给客户端(类似于浏览器)。
在 C# 中,您可以使用 NetworkStream 类对于 TCP,UdpClient 对于 UDP。
Games either use the host computer with a public IP as a server or the server itself as a server.
A client with private IP establishes a connection with a server and the server then uses the connection to return data to a client (similar to browsers).
In C# you could use the NetworkStream class for TCP and UdpClient for UDP.
如果我正确理解你的问题:你可以使用
Socket.ReceiveFrom
,它会告诉服务器正在发送请求的客户端的IP地址。If I understand your question correctly: you could use
Socket.ReceiveFrom
, which will tell the server the IP address of the client who is sending a request.使用 Socket.BeginReceiveFrom / EndReceiveFrom 服务器获取客户端的 IP 地址。如果服务器需要回复,则使用 IPEndPoint。
Using Socket.BeginReceiveFrom / EndReceiveFrom the server gets the IP address of the client. If the server needs to reply, it uses the IPEndPoint.