В моем приложении Xamarin.Android
я отправляю широковещательное сообщение udp, чтобы найти мои серверы в локальной локальной сети. Мои серверы затем возвращают MachineName они бегут, на которых я отображать в ListView на мое приложение в видеUdp читает пустые байты после первого раза - mono android
<MachineName> - <Ip address>
Это все хорошо работает в первый раз, однако со второго раза на все это читает это пустые байты. Число прочитанных байтов правильное, но все они равны нулю.
Вот код:
private static void ListenForBroadcastResponses()
{
udp.BeginReceive(OnBroadcastResponse, new object());
}
private static void OnBroadcastResponse(IAsyncResult ar)
{
// Recieve the message
IPEndPoint ip = new IPEndPoint(IPAddress.Any, port);
byte[] bytes = udp.EndReceive(ar, ref ip);
// Decode it
string message = Encoding.ASCII.GetString(bytes);
// If message is the awaited message from client or from the awaited port
if (ip.Port == port) //|| message == BRDCAST_ANSWER)
{
// Raise server found event
var handler = ServerFound;
if (handler != null)
handler(null, new ServerEventArgs
{
Server = new Server(message, ip.Address)
});
}
// Start listening again
ListenForBroadcastResponses();
}
Debug скриншоты:
Первый раз полные байты мь:
Второй раз и на байт пустуют:
Что здесь не так?