private ITcpOp startTcpOp(SrvRequest request) { request.TrackingId = Helpers.MakeTrackingId(); request.ServerName = _info.ServerName; request.Port = _info.Port; request.UserName = _info.UserName; request.Password = _info.Password; return (TcpOp.New(_config.BinaryStreamBufSize, _tcpClient.GetStream())); }
private async Task processConnection(TcpClient tcpClient) { try { var tcpOp = TcpOp.New(_config.BinaryStreamBufSize, tcpClient.GetStream()); for (;;) { var jRequest = await tcpOp.ReadString(); if (jRequest.IsEmpty()) { break; } var request = jRequest.Parse <SrvRequest>(); bool ok = await dispathRequest(request, jRequest, tcpOp); if (!ok) { break; } } } catch (Exception ex) { if (_isClosed == false) { _log.Error("tcp.protocol", ex); } } finally { try { tcpClient.Close(); } catch { } } }