Chapter 10

Building TCP Servers


  • 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.


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');

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 ...

Get Professional Node.js: Building Javascript Based Scalable Software now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.