1. Create a socket to listen for incoming connection requests. 2. Set the local endpoint using the Bind method. 3. Put the socket in the listening state using the Listen method. 4. At this point incoming connection requests from a client are placed in a queue. 5. Use the Accept method to create a server
socket for a connection request
issued by a client-side socket. This sets the remote endpoint. 6. Use the Send and Receive methods to communicate with the client socket. 7. When communication is finished, terminate the connection using the Shutdown method. 8. Release the resources allocated by the server socket using the Close method. 9. Release the resources allocated by the listener socket using the Close method.