上面所说的方法,是直接利用winsock API编程时用的方法,如果用System.Net,可以这样来获得所accept的客户端的IP地址:
TcpClient client = myListener.EndAcceptTcpClient(ar);
IPAddress clientIP =((IPEndPoint)(client.Client.RemoteEndPoint)).Address;
你可以用一个数组来保存各个已经连接的clientIP,在接受连接时进行判断,如果这个IP已经连接了,则拒绝接受连接。
拒绝接受连接的方法:
if (HaveBeenAccpeted(clientIP)) // 如果这个IP已经连接了{NetworkStream networkStream = client.GetStream();
networkStream.Close(); // 马上断开这个TCP连接