C# 检查TcpListener是否有任何已连接的客户端
我目前正在开发一个c#程序,在该程序中,我在套接字上打开一个连接,并监听客户端 如何检查TcpListener当前是否连接了任何客户端。我想这样做,当有人关闭控制台应用程序时,而不是仅仅终止任何连接,它将在退出控制台应用程序之前等待所有连接的客户端完成 代码如下:C# 检查TcpListener是否有任何已连接的客户端,c#,tcpclient,tcplistener,C#,Tcpclient,Tcplistener,我目前正在开发一个c#程序,在该程序中,我在套接字上打开一个连接,并监听客户端 如何检查TcpListener当前是否连接了任何客户端。我想这样做,当有人关闭控制台应用程序时,而不是仅仅终止任何连接,它将在退出控制台应用程序之前等待所有连接的客户端完成 代码如下: TcpClient client = listener.AcceptTcpClient(); if (client.Connected) {
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中是否有一种方法可以获取连接客户端的计数,或者这必须由我自己管理,将客户端添加到类似列表数组的内容中,然后在客户端关闭时将其删除 据我所知,TcpListener并不在内部跟踪已接受的连接,这必须由应用程序根据需要明确地完成