Я разрабатываю многопользовательскую игру с помощью класса System.Net.Sockets.UdpClient .
Это для двух игроков, поэтому нужно открыть сервер и ждатьвходящие соединения.Другой игрок вводит IP-адрес хоста и пытается отправить «пинг», чтобы убедиться, что соединение возможно и существует открытый сервер.Затем хост отвечает «pong».
Как только игра запущена, оба должны отправлять друг другу сообщения udp, поэтому им обоим нужен IP-адрес оппонента.
Конечно,Сервер также может вводить IP-адреса клиентов, но это мне кажется ненужным.
Как я могу получить IP-адрес клиентов из пакета udp при получении сообщения "ping"?
Вот мойполучение кода (сервер ожидает пинг):
private void ListenForPing()
{
while (!closeEverything)
{
var deserializer = new ASCIIEncoding();
IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0);
byte[] recData = udp.Receive(ref anyIP);
string ping = deserializer.GetString(recData);
if (ping == "ping")
{
Console.WriteLine("Ping received.");
InvokePingReceiveEvent();
}
}
}