C# 如何防止socket重连接?
发布网友
发布时间:2022-04-30 05:11
我来回答
共1个回答
热心网友
时间:2023-05-25 01:04
windows socket里,服务器端在侦听过程中,通过accept()函数的addr参数可以知道来连接的客户端的IP地址,设法记住这些已经连接的客户端的IP,再有新的连接时,查看是否已经有这个IP连接,如果有的话,拒绝连接就好了。
上面所说的方法,是直接利用winsock API编程时用的方法,如果用System.Net,可以这样来获得所accept的客户端的IP地址:
TcpClient client = myListener.EndAcceptTcpClient(ar);
IPAddress clientIP =((IPEndPoint)(client.Client.RemoteEndPoint)).Address;
你可以用一个数组来保存各个已经连接的clientIP,在接受连接时进行判断,如果这个IP已经连接了,则拒绝接受连接。
拒绝接受连接的方法:
if (HaveBeenA*eted(clientIP)) // 如果这个IP已经连接了
{
NetworkStream networkStream = client.GetStream();
networkStream.Close(); // 马上断开这个TCP连接
client.Close();
}
System.Net编程我也是初学,以上意见仅供参考。