http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.receive.aspx
рабатываю многопользовательскую игру с помощьюSystem.Net.Sockets.UdpClient класс.
Это для двух игроков, поэтому нужно открыть сервер и ждать входящих соединений. Другой игрок вводит IP-адрес хоста и пытается отправить «ping», чтобы убедиться, что соединение возможно и существует открытый сервер. Хозяин тогда отвечает "понгом".
После запуска игры оба должны отправлять друг другу сообщения 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();
}
}
}