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