private async System.Threading.Tasks.Task HandRecieveDataFromClientAsync(Memory <byte> memoryBuffer, int offset, int length) { var stream = _clientInProxy.GetStream(); var byteData = memoryBuffer.ToArray(); string str = Encoding.UTF8.GetString(byteData); if (LocalProxyStatus.Connect == localProxyStatus) { var address = SetHttpProxy(byteData); await _clientOutProxy.ConnectAsync(memoryBuffer.ToArray(), offset, length, address); localProxyStatus = LocalProxyStatus.Transfer; if (address.IsHttps) { await stream.WriteAsync(Encoding.UTF8.GetBytes(HTTP_CONECTED_RES_STR)); } else { await _clientOutProxy.WriteDataAsync(memoryBuffer.ToArray(), offset, length); } } else if (LocalProxyStatus.Transfer == localProxyStatus) { await _clientOutProxy.WriteDataAsync(memoryBuffer.ToArray(), offset, length); } }
public Channel(TcpClient clientInProxy, AbsClientOutProxy clientOutProxy) { localProxyStatus = LocalProxyStatus.Connect; _clientInProxy = clientInProxy; _clientOutProxy = clientOutProxy; }