Beispiel #1
0
 /// <summary>
 /// 开始执行代理转发操作
 /// </summary>
 public void Start()
 {
     if (ReBuffer != null)
     {
         return;
     }
     ReBuffer = new byte[cTcpClient.Client.ReceiveBufferSize];
     Rsaea    = new SocketAsyncEventArgs();
     Rsaea.SetBuffer(ReBuffer, 0, ReBuffer.Length);
     if (!cTcpClient.BeginReceive(Rsaea, out ClientErrorType clientErrorType))
     {
         Close(clientErrorType);
     }
 }
Beispiel #2
0
        /// <summary>
        /// 客户端发送数据完成
        /// </summary>
        /// <param name="tcpClient"></param>
        /// <param name="saea"></param>
        /// <param name="clientErrorType"></param>
        private void OnSendEnd(HHTcpClient tcpClient, SocketAsyncEventArgs saea, ClientErrorType clientErrorType)
        {
            if (clientErrorType != ClientErrorType.Success)
            {
                Close(clientErrorType);
            }
            else
            {
                ClientErrorType errorType;
                if (connectedOver == 0)
                {
                    connectedOver = 1;

                    if (!cTcpClient.BeginReceive(Rsaea, out errorType))
                    {
                        Close(errorType);
                    }
                    //Console.WriteLine($"连接已建立");
                }
                else
                {
                    HttpProxySessionInfo.AddRetNum(saea.BytesTransferred);
                }
                if (DRsaea == null)
                {
                    int l = ReceiveBufferSize;
                    DRsaea    = new SocketAsyncEventArgs();
                    DReBuffer = new byte[l];
                    DRsaea.SetBuffer(DReBuffer, 0, DReBuffer.Length);
                }
                if (!desTcpCliet.BeginReceive(DRsaea, out errorType))
                {
                    Close(errorType);
                }
            }
        }