SocketAsyncEventArgs在判定用户非法后怎么样拒绝这个连接

.Net技术 码拜 8年前 (2016-02-24) 788次浏览
本人已经会接受连接并正常通讯,但不知道怎么样拒绝连接。
注意不是断开连接。是在Socket.AcceptAsync() 函数里拒绝这个连接。
服务端这样写的话

  e.SocketError = SocketError.AccessDenied;
            try {
                e.AcceptSocket.Shutdown(SocketShutdown.Send);
            } catch (Exception) { }
            e.AcceptSocket.Close();
            return;

客户端

if (_connSAEA.SocketError == SocketError.Success)

的结果还是True

解决方案

30

没有所谓的拒绝连接的概念,你server不BeginAccept就是拒绝全部链接,反之既然你BeginAccept了,那就相当于同意连接请求,最多是在某种条件下,在Accept时候直接切断连接不进行后续通信

10

一般直接丢个异常给他,当然假如防火墙支持,可以直接在代码里编写防火墙规则,让防火墙本人拦截

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明SocketAsyncEventArgs在判定用户非法后怎么样拒绝这个连接
喜欢 (0)
[1034331897@qq.com]
分享 (0)