private void OnSocketException(SocketException e) { if (!SuppressSocketException) { SocketException?.Invoke(this, e); } }
private void ProcessAccept(SocketAsyncEventArgs e) { if (e.LastOperation != SocketAsyncOperation.Accept) { return; } if (e.BytesTransferred <= 0) { return; } //不允许同Ip多个连接 if (Clients.CheckIpOnLine((e.AcceptSocket.RemoteEndPoint as IPEndPoint).Address.ToString())) { return; } SocketElement se = new SocketElement("", e.AcceptSocket); SetUserToken?.Invoke(null, se);// if (Clients.ContainsUID(se.UID)) { SocketException?.Invoke(new Exception("用户id已存在!")); return; } SocketAsyncEventArgs arg = Clients.Pop(se); ((SocketElement)arg.UserToken).Socket = e.AcceptSocket; Interlocked.Increment(ref connCount); bool willRaiseEvent = e.AcceptSocket.ReceiveAsync(arg); if (!willRaiseEvent) { ProcessReceive(arg); } StartAccept(e); }
private void OnSocketException(SocketException e) { SocketException?.Invoke(this, e); }
protected void OnSocketException(AsyncTCPClientEventArgs e, object data) { SocketException?.Invoke(data, e); }
protected virtual void OnSocketError(SocketException ex) { SocketException?.Invoke(this, ex); }