private bool ConnectionManager(TcpClient tcpClient) { var objStream = tcpClient.GetStream(); var boolCloseConnection = false; var dateBeginConnection = DateTime.Now; objStream.ReadTimeout = intTimeOutSeconds * 1000; while (boolCloseConnection == false) { var strRawClientRequestHeader = SocketWorker.ReadClientData(objStream); if (DateTime.Now >= dateBeginConnection.AddSeconds(intTimeOutSeconds)) { boolCloseConnection = true; } if (!String.IsNullOrEmpty(strRawClientRequestHeader)) { var headerRequest = new Request(strRawClientRequestHeader); if (!RequestHeader.Connection(headerRequest.Get(HeaderItem.GetRfcString(HeaderItem.Type.Connection)))) { boolCloseConnection = true; } if (boolCloseConnection) { headerRequest.Set(HeaderItem.GetRfcString(HeaderItem.Type.Connection), "close"); } headerRequest.Add("ClientIP", tcpClient.Client.RemoteEndPoint.ToString()); SocketWorker.Do(ref headerRequest, ref objStream); } else { boolCloseConnection = true; } } return(boolCloseConnection); }