Chapter 10
Building TCP Servers
WHAT’S IN THIS CHAPTER?
- Creating a TCP server
- Closing server-side TCP connections
- Handling network errors
- Piping data to or from a TCP connection
- Building a TCP chat server
The transmission control protocol (TCP) is one of the fundamental protocols of the Internet. It sits on top of the Internet protocol (IP) and provides a transport mechanism for the application layer. HTTP, for instance, works on top of TCP, as do many other connection-oriented applications such as iRC, SMTP, and IMAP.
Node has a first-class HTTP server implementation in the form of a pseudo-class in http.Server, which descends from the TCP server pseudo-class in net.Server. This means that everything described in this chapter applies to the Node HTTP server as well.
CREATING A TCP SERVER
You can create a TCP server using the net module like this:
require('net').createServer(function(socket) {
// new connection
socket.on('data', function(data) {
// got data
});
socket.on('end', function(data) {
// connection closed
});
socket.write('Some string');
}).listen(4001);
On line 1 you use the createServer() method on the net package, which you bind to TCP port 4001 on line 14. You can pass in a callback function to createServer to be called every time there is a “connection” event. Inside this callback you will be handed a socket object, which you can use to send and receive data to and from the client.
Because the server object is also an event emitter, and you can listen to events ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access