我正在用System.Net.Sockets.UdpClient類的幫助開發動作多人遊戲。從UdpClient收到的UDP包中獲取客戶端IP
這是兩個玩家,所以應該打開一個服務器,並等待傳入的連接。另一個玩家輸入主機IP並嘗試發送「ping」,以確保可以連接並且存在開放的服務器。主人然後迴應一個「乒乓球」。
一旦遊戲運行,兩者都必須互相發送udp消息,所以他們都需要對手的ip地址。
當然,服務器也可以輸入客戶端的IP,但這似乎是不必要的。
當收到「ping」消息時,如何從udp軟件包獲取客戶端IP?
這裏是(服務器等待平)我接收代碼:
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();
}
}
}
嘿,就這麼簡單。謝謝 – magnattic 2011-05-11 13:55:55