Odd;UDP должен работать, так как это один из наших тестов:
int Port = 9595;
var server = new UdpClient(Port);
server.BeginReceive(result => {
IPEndPoint sender = null;
var data = server.EndReceive(result, ref sender);
var value = Encoding.Unicode.GetString (data);
if (value != "hello there!")
throw new InvalidOperationException ("UDP data transfer failed!");
RunOnUiThread (() => textview.Text += "\n\nRead data from UDP: " + value);
server.Close ();
}, null);
using (var client = new UdpClient()) {
var bytes = Encoding.Unicode.GetBytes("hello there!");
client.Send(
bytes,
bytes.Length,
new IPEndPoint(IPAddress.Loopback, Port));
}
Теперь вышеприведенный код использует устройство с обратной связью вместо "реального" устройства, но я надеюсь / ожидаюэто на работу ...
С какого порта вы пытаетесь читать?Android действительно использует ядро Linux, поэтому доступ к портам менее 1024 разрешен только авторизованным пользователям.
Другая возможность заключается в том, что вам не хватает разрешения android.permission.INTERNET
, которое требуется для всех операций, связанных с сетью.