буфер печати от ReceiveFrom завершает поток - PullRequest
1 голос
/ 22 января 2011

У меня есть поток в C #, который передает из сокета UDP каждую 1 секунду

в другой теме, у меня есть

 while (true)
 {
  if (m_UdpReceiveSocket.Poll(0, SelectMode.SelectRead))
  {
   EndPoint ep = new IPEndPoint(IPAddress.Any, s_BroadcastPort);
   byte[] buffer = new byte[1024];

   m_UdpReceiveSocket.ReceiveFrom(buffer, 0, 1024, SocketFlags.None, ref ep);

   Console.WriteLine("testing");
   Console.WriteLine( ASCIIEncoding.ASCII.GetString(buffer) + "  " + ((IPEndPoint) ep).Address + ":" + ((IPEndPoint) ep).Port);
  }

  Thread.Sleep(1);
 }

Если я закомментирую второй вызов Console.WriteLine, все работает нормально, другой поток передает и этот поток получает информацию, но если я использую второй Console.WriteLine (даже без печати EndPoint), поток завершается без каких-либо исключений второй раз Console.WriteLine называется

спасибо

проблема решена, мне просто нужно было учесть, сколько я получу, прежде чем конвертировать в строку

в качестве дополнительного вопроса, почему я не вижу свои пакеты в Wireshark?

1 Ответ

0 голосов
/ 22 января 2011

Что касается sidenote. Я считаю, что у моей коллеги была такая же проблема на прошлой неделе. Вы не увидите пакетов в Wireshark, если ваш клиент находится на том же компьютере, что и сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...