2011-01-21 125 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