Exemple #1
0
 private void OnSocketException(SocketException e)
 {
     if (!SuppressSocketException)
     {
         SocketException?.Invoke(this, e);
     }
 }
Exemple #2
0
        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);
        }
Exemple #3
0
 private void OnSocketException(SocketException e)
 {
     SocketException?.Invoke(this, e);
 }
Exemple #4
0
 protected void OnSocketException(AsyncTCPClientEventArgs e, object data)
 {
     SocketException?.Invoke(data, e);
 }
Exemple #5
0
 protected virtual void OnSocketError(SocketException ex)
 {
     SocketException?.Invoke(this, ex);
 }