2012-05-31 113 views
0

我目前正在開發一個c#程序,我在套接字上打開連接並偵聽客戶端。檢查TcpListener是否有任何連接的客戶端

如何檢查TcpListener是否有當前連接的客戶端。我想這樣做,所以當有人關閉控制檯應用程序而不是它只是終止連接的任何東西時,它將等待所有連接的客戶端在退出控制檯應用程序之前完成。

下面是代碼:

TcpClient client = listener.AcceptTcpClient(); 
       if (client.Connected) 
       { 
        library.logging(classDetails + MethodInfo.GetCurrentMethod().Name, 
         string.Format("Client Connected: {0}",((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString())); 
        NetworkStream stream = client.GetStream(); 
        byte[] data = new byte[client.ReceiveBufferSize]; 
        int bytesRead = stream.Read(data, 0, Convert.ToInt32(client.ReceiveBufferSize)); 
        string request = Encoding.ASCII.GetString(data, 0, bytesRead); 
        byte[] msg = System.Text.Encoding.ASCII.GetBytes("200 OK"); 
        ProcessXML process = new ProcessXML(library, appSettings); 

        // Send back a response. 
        stream.Write(msg, 0, msg.Length); 
        process.processXML(request, ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString()); 
        client.Close(); 

是否有在的TcpListener內的方法來獲取連接的客戶端的數量或者已經這樣了通過在客戶端的東西就像一個列表陣列由我自己來管理和然後在客戶關閉時將其刪除。

回答

1

據我所知,TcpListener沒有內部跟蹤接受的連接 - 必須由應用程序根據需要明確地完成。

相關問題