public static void Serve(IPAddress ipAddress, int portNumber, Byte[] buff, int len, Byte[] response, TraceSource logger) { TcpClient client = null; NetworkStream stream; try { TcpServerClient.Log(logger, TraceEventType.Verbose, eventId++, "Connecting to {0}:{1}", ipAddress, portNumber); using (client = new TcpClient()) { client.Connect(ipAddress, portNumber); TcpServerClient.Log(logger, TraceEventType.Start, eventId++, "Connected to {0}:{1}", ipAddress, portNumber); stream = client.GetStream(); while (TcpServerClient.IsInputing(stream, buff, logger)) { ; } } /* end using (TcpClient client) */ } /* end try { server.Start(); server.AcceptTcpClient(); server.Stop(); } */ catch (SocketException se) { TcpServerClient.Log(logger, TraceEventType.Error, eventId++, "SocketException {1}: {0}", se, se.ErrorCode); } /* end catch (SocketException se) */ finally { if (null != client) { client.Close(); } /* end if (null != client) */ } /* end finally */ } /* end void Serve(IPAddress, int, Byte[], int, TraceSource) */
} /* end void Serve(IPAddress, int, Byte[], int, TraceSource) */ private static bool IsInputing(NetworkStream stream, Byte[] buff, TraceSource logger) { int nRead; string sResponse = Console.ReadLine(); if (sResponse.Equals(String.Empty)) { return(false); } Byte[] bsResponse = Encoding.UTF8.GetBytes(sResponse); int len = bsResponse.Length; stream.Write(bsResponse, 0, len); nRead = stream.Read(buff, 0, len); TcpServerClient.Log(logger, TraceEventType.Verbose, (eventId + 1), "Responded: {0}", Encoding.UTF8.GetString(buff, 0, nRead)); Console.Write("{0}\n", sResponse.Length); return(true); }