O'Reilly logo

Professional Node.js: Building Javascript Based Scalable Software by Pedro Teixeira

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required