Есть эмулятор WIN CE, работающий на виртуалке (сеть настроена через NAT).
В случае расположения клиента на эмуляторе
try
{
var client = new UdpClient();
IPEndPoint ep = new IPEndPoint(IPAddress.Parse("10.0.1.252"), 11000);
client.Connect(ep);
client.Send(new byte[] { 1, 2, 3, 4, 5 }, 5);
var receivedData = client.Receive(ref ep);
string msg = String.Format("receive data from " + ep.ToString());
MessageBox.Show(msg);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
и сервера на десктопе
UdpClient udpServer = new UdpClient(11000);
while (true)
{
var remoteEP = new IPEndPoint(IPAddress.Any, 11000);
var data = udpServer.Receive(ref remoteEP);
string msg = String.Format("receive data from " + remoteEP.ToString());
MessageBox.Show(msg);
udpServer.Send(new byte[] { 1 }, 1, remoteEP);
}
все работает. Если же сервер разместить на эмуляторе, то он так и будет висеть на таймауте Receive
Подозреваю, что что-то с настройками сети (но что, в обратную сторону же работает ?), при этом tcp работает без проблем в обе стороны
PS Понимаю, что вопрос задан некорректно, т. к. в udp, по сути, не устанавливается соединение, но по-другому сформулировать не получилось