The net module in Node.js allows you to build TCP applications by creating both TCP servers and clients. TCP (Transmission Control Protocol) is a reliable protocol that ensures ordered and error-free data transmission over a network.
Here's a breakdown of what you can do with the net module:
-
TCP Servers:
- You can create a TCP server using
net.createServer()
. This function takes a callback function that executes whenever a client connects to the server. - Inside the callback function, you can handle events like:
-
data
: This event fires when the server receives data from the client. -
close
: This event fires when the client disconnects.
-
- You can use the
socket.write()
method to send data back to the connected client.
- You can create a TCP server using
-
TCP Clients:
- You can create a TCP client using net.createConnection(). This function takes the server's address (IP and port) and a callback function that executes when the connection is established.
- The callback function allows you to send data to the server using socket.write().
- You can listen for the 'data' event to receive data from the server.
This example demonstrates a simple TCP server and client application built with Node.js's net module.
Server (server.js):
const net = require('net');
const port = 8080; // Port to listen on
const server = net.createServer((socket) => {
console.log('Client connected!');
// Handle incoming data from the client
socket.on('data', (data) => {
console.log(`Received data from client: ${data.toString()}`);
// Send a response back to the client
socket.write(`Hello from the server!`);
});
// Handle client disconnection
socket.on('end', () => {
console.log('Client disconnected!');
});
});
server.listen(port, () => {
console.log(`Server listening on port ${port}`);
});
Client (client.js):
const net = require('net');
const host = 'localhost'; // Server hostname (or IP)
const port = 8080; // Port to connect to
const client = new net.Socket();
// Handle connection to the server
client.connect(port, host, () => {
console.log('Connected to server!');
// Send data to the server
client.write('Hello from the client!');
});
// Handle data received from the server
client.on('data', (data) => {
console.log(`Received data from server: ${data.toString()}`);
});
// Handle client disconnection (optional)
client.on('end', () => {
console.log('Disconnected from server!');
});
- Save the server code as server.js and the client code as client.js.
- Run the server first: node server.js
- In a separate terminal, run the client: node client.js
This will establish a TCP connection between the client and server. The server will log messages when a client connects,receives data, and disconnects. The client will log similar messages and also send a message "Hello from the client!" to the server upon connection. The server will then respond with "Hello from the server!”.
Note:
- Remember, the net module can only be used in a Node.js environment, not directly in a web browser.
- Also, remember to replace localhost with the actual server IP address if you're running the server on a different machine.
Let's wrap up things
By understanding these concepts, you can build more complex TCP-based applications in Node.js!
HAPPY CODING 🚀
Top comments (0)