c# socket 服务端设置白名单,拒绝访问,如何实时告知客户端,以及端口占用问题
TCP 192.168.0.156:5000 0.0.0.0:0 LISTENING 85028
TCP 192.168.0.156:5000 192.168.0.156:52654 FIN_WAIT_2 85028
TCP 192.168.0.156:52654 192.168.0.156:5000 CLOSE_WAIT 81072
以下是服务端,请问如何处理客户端,或者服务端应该如何优化
Socket clientSocket = tcpListener.AcceptSocket();
if (whitelist.Contains(clientSocket.RemoteEndPoint.ToString().Split(':')[0]))
{
ParameterizedThreadStart parameterizedThreadStart = new ParameterizedThreadStart(ReceiveData);//创建一个obj传参的线程委托
Thread receiveMsgThread = new Thread(parameterizedThreadStart);//创建一个线程
receiveMsgThread.IsBackground = true;//设置线程为后台线程
receiveMsgThread.Start(clientSocket);//启动线程并且传入参数clientSocket套接字
dicClientSockets.Add(clientSocket.RemoteEndPoint.ToString(), clientSocket);//将套接字加入集合
dicReceiveMsg.Add(clientSocket.RemoteEndPoint.ToString(), receiveMsgThread);//将信息接收线程加入集合
Form_Server._AddListEvent(clientSocket.RemoteEndPoint.ToString());
}
else
{
clientSocket.Close();
}