2011-01-21 122 views
1

我在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(即使没有引出终点),那么线程退出没有任何异常第二次Console.WriteLine是叫做

谢谢

问题解决了,我只需要考虑我收到多少转换为字符串

一个侧面的问题,为什么我看不到我的Wireshark的数据包过吗?

回答

0

至于旁注。我相信我的同事在另一周也有同样的问题。如果您的客户端与服务器是同一台机器,您将无法在Wireshark中看到数据包。

+0

但我广播,每个人都可以成为我的客户端 – lj8888 2011-01-22 12:24:44