You need to create a server that listens on a port for incoming requests from a TCP client. These client requests can then be processed at the server, and any responses can be sent back to the client.
Use the TcpListener class to create a TCP-based endpoint to listen for requests from TCP based clients. In the snippet code below, RunServer initiates a one-request TCP-based server running on a given IP address and port:
public static void RunServer(string address, int port) { // set up address IPAddress addr = IPAddress.Parse(address); // set up listener on that address/port TcpListener tcpListener = new TcpListener(addr, port); if (tcpListener != null) { // start it up tcpListener.Start(); // wait for a tcp client to connect TcpClient tcpClient = tcpListener.AcceptTcpClient(); byte[] bytes = new byte[1024]; // get the client stream NetworkStream clientStream = tcpClient.GetStream(); StreamReader reader = new StreamReader(clientStream, Encoding.UTF8); try { string request = reader.ReadToEnd(); // just send an acknowledgement bytes = Encoding.UTF8.GetBytes("Thanks for the message!"); clientStream.Write(bytes, 0, bytes.Length); } finally { // close the reader reader.Close(); } // stop listening tcpListener.Stop(); } }
RunServer takes the IP address and port passed in, creates an IPAddress from the string address, and creates a TcpListener on that IPAddress and port. Once created, the TcpListener.Start method is called to start up the server. The blocking AcceptTcpClient method is called to listen for requests from TCP-based clients. Once the client connects, the request data from the client is read and a brief acknowledgment is given, and then the client stream is closed and the TcpListener is stopped using the TcpListener.Stop method.
Popularity: 5% [?]
RSS feed for comments on this post · TrackBack URI
Leave a reply