Вот мой код
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 #.