Я использую UDP Sokckts в своем клиентском приложении.
Вот некоторые фрагменты кода:
SendIP = new IPEndPoint(IPAddress.Parse(IP), port);
ReceiveIP = (EndPoint)(new IPEndPoint(IPAddress.Any, 0));
socket = new Socket(
AddressFamily.InterNetwork,
SocketType.Dgram,
ProtocolType.Udp);
socket.Bind(ReceiveIP);
и для получения (пока (true)):
byte[] data = new byte[BUFFERSIZE];
int receivedDataLength = socket.ReceiveFrom(data, ref ReceiveIP);
string s= Encoding.ASCII.GetString(data, 0, receivedDataLength);
Я делаю бесконечное время, пока на приеме, есть другие вещи, которые нужно сделать в это время, даже если ничего не получено. Я хочу проверить, есть ли фактически доступные данные, тогда получение не ждите. Обратите внимание, что текущий метод получения ожидает, пока сервер не отправит сообщение.