Advertisement
icyguyus

echo_server.js

May 29th, 2025
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // echo_server.js
  2.  
  3. const net = require('net');
  4.  
  5. // Define the port for the echo server to listen on
  6. const PORT = 12345;
  7.  
  8. // Create a TCP server
  9. const server = net.createServer((socket) => {
  10.     // 'connection' event fires when a new client connects
  11.     console.log(`Client connected from: ${socket.remoteAddress}:${socket.remotePort}`);
  12.  
  13.     // 'data' event fires when data is received from the client
  14.     socket.on('data', (data) => {
  15.         const receivedMessage = data.toString().trim(); // Convert Buffer to string and trim whitespace
  16.         console.log(`Server: Received "${receivedMessage}" from ${socket.remoteAddress}:${socket.remotePort}`);
  17.  
  18.         // Echo the received data back to the client
  19.         socket.write(`Echo from Server: "${receivedMessage}"\n`);
  20.     });
  21.  
  22.     // 'end' event fires when the client disconnects
  23.     socket.on('end', () => {
  24.         console.log(`Client disconnected: ${socket.remoteAddress}:${socket.remotePort}`);
  25.     });
  26.  
  27.     // 'error' event fires if there's a socket error
  28.     socket.on('error', (err) => {
  29.         console.error(`Socket error for ${socket.remoteAddress}:${socket.remotePort}: ${err.message}`);
  30.     });
  31. });
  32.  
  33. // Listen for connections on the specified port
  34. server.listen(PORT, () => {
  35.     console.log(`Server: Listening on port ${PORT}`);
  36.     console.log(`To connect, use: nc 127.0.0.1 ${PORT}`);
  37. });
  38.  
  39. // Handle server errors (e.g., port already in use)
  40. server.on('error', (err) => {
  41.     if (err.code === 'EADDRINUSE') {
  42.         console.error(`Error: Port ${PORT} is already in use. Please choose another port or close the application using it.`);
  43.     } else {
  44.         console.error(`Server error: ${err.message}`);
  45.     }
  46. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement