/// <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); } }
/// <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); } } }