C# 从UdpClient接收的UDP包获取客户端IP
我正在班级的帮助下开发一款动作多人游戏 这是为两个玩家准备的,所以一个玩家应该打开一个服务器并等待传入的连接。另一个玩家输入主机IP并尝试发送“ping”,以确保连接是可能的,并且有一个打开的服务器。然后,主机会发出“砰”的一声回应 一旦游戏运行,双方都必须向对方发送udp消息,因此他们都需要对方的ip地址 当然,服务器也可以输入客户端IP,但这对我来说似乎没有必要 当收到“ping”消息时,如何从udp包获取客户端IP 这是我的接收代码(服务器正在等待ping):C# 从UdpClient接收的UDP包获取客户端IP,c#,.net,network-programming,udp,udpclient,C#,.net,Network Programming,Udp,Udpclient,我正在班级的帮助下开发一款动作多人游戏 这是为两个玩家准备的,所以一个玩家应该打开一个服务器并等待传入的连接。另一个玩家输入主机IP并尝试发送“ping”,以确保连接是可能的,并且有一个打开的服务器。然后,主机会发出“砰”的一声回应 一旦游戏运行,双方都必须向对方发送udp消息,因此他们都需要对方的ip地址 当然,服务器也可以输入客户端IP,但这对我来说似乎没有必要 当收到“ping”消息时,如何从udp包获取客户端IP 这是我的接收代码(服务器正在等待ping): 在您的示例中,当客户端连接时
在您的示例中,当客户端连接时,anyIP IPEndPoint对象将包含客户端连接的地址和端口
private void ListenForPing()
{
while (!closeEverything)
{
IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0);
byte[] recData = udp.Receive(ref anyIP);
string ping = Encoding.ASCII.GetString(recData);
if (ping == "ping")
{
Console.WriteLine("Ping received.");
Console.WriteLine("Ping was sent from " + anyIP.Address.ToString() +
" on their port number " + anyIP.Port.ToString());
InvokePingReceiveEvent();
}
}
}
private void ListenForPing()
{
while (!closeEverything)
{
IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0);
byte[] recData = udp.Receive(ref anyIP);
string ping = Encoding.ASCII.GetString(recData);
if (ping == "ping")
{
Console.WriteLine("Ping received.");
Console.WriteLine("Ping was sent from " + anyIP.Address.ToString() +
" on their port number " + anyIP.Port.ToString());
InvokePingReceiveEvent();
}
}
}