static void Main(string[] args) { IPAddress ipAddress = IPAddress.Any; int portNumber = 8092; int len = 256; Byte[] buff = new Byte[len]; Byte[] response = new Byte[len]; TcpServer.CallBack callback = new TcpServer.CallBack(TcpServerTest.toLower); TcpServer.Serve(ipAddress, portNumber, buff, len, response, logger, callback); } /* end void Main(String[]) */
} /* end void Serve(IPAddress, int, Byte[], int, TraceSource, TcpServer.CallBack) */ private static bool Processing(NetworkStream stream, Byte[] buff, int len, Byte[] response, TraceSource logger, TcpServer.CallBack callback) { int nRead; int nProcessed; nRead = stream.Read(buff, 0, len); nProcessed = callback(eventId, buff, nRead, response); TcpServer.Log(logger, TraceEventType.Verbose, (eventId + 1), "Responded: {0}", Encoding.UTF8.GetString(response, 0, nProcessed)); stream.Write(response, 0, nProcessed); return(0 != nRead); }
public static void Serve(IPAddress ipAddress, int portNumber, Byte[] buff, int len, Byte[] response, TraceSource logger, TcpServer.CallBack callback) { TcpListener server = null; TcpClient client = null; NetworkStream stream; bool isRequested = true; try { try { server = new TcpListener(ipAddress, portNumber); server.Start(); while (isRequested) { TcpServer.Log(logger, TraceEventType.Verbose, eventId++, "Connecting to {0}:{1}", ipAddress, portNumber); try { using (client = server.AcceptTcpClient()) { TcpServer.Log(logger, TraceEventType.Start, eventId++, "Connected to {0}:{1}", ipAddress, portNumber); stream = client.GetStream(); while (TcpServer.Processing(stream, buff, len, response, logger, callback)) { ; } } /* end using (TcpClient client) */ } finally { if (null != client) { client.Close(); } /* end if (null != client) */ isRequested = false; } /* end finally */ } /* end while (isRequested) */ } /* end try { server.Start(); } */ finally { if (null != server) { server.Stop(); } /* end if (null != server) */ } /* end finally */ } /* end try { server.Start(); server.Stop(); } */ catch (SocketException se) { TcpServer.Log(logger, TraceEventType.Error, eventId++, "SocketException {1}: {0}", se, se.ErrorCode); } /* end catch (SocketException se) */ } /* end void Serve(IPAddress, int, Byte[], int, TraceSource, TcpServer.CallBack) */