Reading and Writing Over Socket Connections
The reason you form socket connections to other machines is so that you can read or write information over those connections. What information you read or write, or when you read it or write it, depends on the service associated with the socket connection.
Reading and writing over sockets can occur asynchronously, so that it does not block the execution of other code in your network application. This is called a non-blocking connection. You can also form Blocking Connections, where your application waits for the reading or writing to be completed before executing the next line of code.