0
這裏是我的代碼UDP協議不能接收到任何數據
Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
sck.Bind(new IPEndPoint(IPAddress.Any, 0));
// Broadcast to find server
string msg = "Imlookingforaserver:" + udp_listen_port;
byte[] sendBytes4 = Encoding.ASCII.GetBytes(msg);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Parse("255.255.255.255"), server_port);
sck.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
sck.SendTo(sendBytes4, groupEP);
//Wait response from server
Socket sck2 = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
sck2.Bind(new IPEndPoint(IPAddress.Any, udp_listen_port));
byte[] buffer = new byte[128];
EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, udp_listen_port);
sck2.ReceiveFrom(buffer, ref remoteEndPoint); //<<< I never pass this line
我用上面的代碼,試圖找到一個服務器。首先,我廣播一條消息,然後等待服務器的響應。
我用C++編寫的服務器進行測試,運行在Windows Vista中,客戶端用C#編寫,並且運行在與服務器相同的機器上。
問題是:服務器可以接收客戶端廣播的消息,但客戶端無法從服務器接收任何東西。
我嘗試用C++編寫客戶端,它的功能就像一個魅力,我認爲我的問題是在C#客戶端。
你有沒有試過在兩臺獨立的機器上運行它,看看是否是這個問題? – 2010-04-17 03:09:03