public SocketConnectionResult Connect() { SocketConnectionResult status = (clientSocket.Connected) ? SocketConnectionResult.CONNECTED : SocketConnectionResult.DISCONNECTED; if (status == SocketConnectionResult.DISCONNECTED) { try { clientSocket.Connect(this.IpAddress, this.Port); status = SocketConnectionResult.CONNECTED; } catch (TimeoutException) { status = SocketConnectionResult.CONNECT_TIMEOUT; this.Disconnect(); return(status); } catch (SystemException) { status = SocketConnectionResult.CONNECT_ERROR; this.Disconnect(); return(status); } } return(status); }
public static string Build(SocketConnectionResult error, string httpVersion) { switch (error) { case SocketConnectionResult.AuthenticationError: return(httpVersion + "401 Unauthorized\r\n\r\n"); case SocketConnectionResult.HostUnreachable: case SocketConnectionResult.ConnectionRefused: case SocketConnectionResult.ConnectionReset: return(string.Concat(httpVersion, "502 ", error.ToString(), "\r\n\r\n")); default: return(string.Concat(httpVersion, "500 Internal Server Error\r\nX-Proxy-Error-Type: ", error.ToString(), "\r\n\r\n")); } }
public SocketConnectionResult Disconnect() { SocketConnectionResult status = (clientSocket.Connected) ? SocketConnectionResult.CONNECTED : SocketConnectionResult.DISCONNECTED; if (status == SocketConnectionResult.CONNECTED) { try { clientSocket.Close(); clientSocket = new TcpClient() { ReceiveTimeout = this.ReceiveTimeout }; status = SocketConnectionResult.DISCONNECTED; } catch (TimeoutException) { status = SocketConnectionResult.DISCONNECT_TIMEOUT; return(status); } catch (SystemException) { status = SocketConnectionResult.DISCONNECT_ERROR; return(status); } } return(status); }