Working with Networking (net)
1. Creating TCP Server (net.createServer)
Example: Echo server
import net from "node:net" ;
const server = net. createServer (( socket ) => {
socket. write ( "hi \n " );
socket. pipe (socket);
});
server. listen ( 7 , () => console. log ( "echo on 7" ));
2. Creating TCP Client
Example
const client = net. createConnection ({ port: 7 , host: "127.0.0.1" }, () => client. write ( "hello" ));
client. on ( "data" , ( d ) => { console. log (d. toString ()); client. end (); });
3. Handling Connection Events
Event Fires
connectionNew client (server)
connectConnected (client)
dataBytes received
endFIN from peer
closeFully closed
errorSocket error
timeoutIdle timeout reached
4. Writing Data to Socket (socket.write)
Behavior Detail
Returns false Buffer full → wait for drain
Encoding Default UTF-8 if string
5. Ending Connections (socket.end)
API Effect
socket.end(data?)Half-close after sending
socket.end()Send FIN
6. Destroying Sockets (socket.destroy)
Method Use
socket.destroy(err?)Force close, optionally with error
socket.destroyedBoolean flag
7. Getting Socket Address (socket.address)
Property Returns
socket.address(){ address, family, port }
socket.remoteAddress / remotePortPeer info
socket.localAddress / localPortLocal info
8. Setting Socket Timeout (socket.setTimeout)
Example
socket. setTimeout ( 30_000 , () => socket. end ());
Note: Timeout fires after no activity; doesn't auto-close — handle in callback.
9. Implementing Keep-Alive (setKeepAlive)
API Use
socket.setKeepAlive(true, ms)OS-level TCP keepalive
socket.setNoDelay(true)Disable Nagle's algorithm
10. Using Unix Sockets
Pattern Code
Server server.listen("/tmp/app.sock")
Client net.createConnection({ path: "/tmp/app.sock" })
11. Handling Socket Errors
Code Meaning
ECONNRESETPeer reset connection
EPIPEWrote to closed socket
EHOSTUNREACHRouting failure
EADDRINUSEPort already bound