Кто-нибудь пробовал использовать Udp Unicast на Windows Phone 7.1 (RC)? У меня есть несколько вопросов, которые я хотел бы задать вам, ребята.
Согласно документу http://msdn.microsoft.com/en-us/library/system.net.sockets.socket(v=VS.95).aspx, единственным поддерживаемым ProtocolType является протокол TCP. Означает ли это, что Udp Unicast не поддерживается полностью?
Я обнаружил, что мы можем вызывать ReceiveFromAsync только при событии Completed SendToAsync. В противном случае он выдаст исключение «Указан неверный аргумент». Почему это так работает? Другие также имеют такую же проблему Проблемы с асинхронным получением одноадресных пакетов UDP в Windows Phone 7 ..
Я также протестировал образец MSDN и несколько других клиентов C # Udp. Я обнаружил, что метод SendToAsync работает нормально. Но ReceiveFromAsync не работает. У кого-нибудь есть идеи как это исправить?
private void OnRecieve() {
var receiveArgs = new SocketAsyncEventArgs();
receiveArgs.RemoteEndPoint = new IPEndPoint(IPAddress.Any, PORT);
receiveArgs.SetBuffer(new Byte[1024], 0, 1024);
var strBdr = new StringBuilder();
receiveArgs.Completed += (__, result) => {
var package = Encoding.UTF8.GetString(result.Buffer, 0, result.BytesTransferred);
if (!string.IsNullOrEmpty(package)) {
this.RaiseReceived(package);
}
socket.ReceiveFromAsync(receiveArgs);
};
socket.ReceiveFromAsync(receiveArgs);
}
Спасибо, ребята!