Skip to content

Instantly share code, notes, and snippets.

@iamssen
Last active January 6, 2020 14:33
Show Gist options
  • Save iamssen/6f9c0fb60a3cc59ede08f03393f12647 to your computer and use it in GitHub Desktop.
Save iamssen/6f9c0fb60a3cc59ede08f03393f12647 to your computer and use it in GitHub Desktop.
Understanding HTTP using Node.js "net" 1. Socket
import { createServer, Server, Socket } from 'net';
const port: number = 9903;
// ---------------------------------------------
// server
// ---------------------------------------------
const server: Server = createServer((connectedSocket: Socket) => { // 2. this is the client below
console.log(`[server] connected client: ${JSON.stringify(connectedSocket.address())}`);
connectedSocket.on('data', clientData => { // 4. receive data from client
console.log(`[server] received data from client: ${clientData}`);
connectedSocket.write(`~~echo~~ ${clientData.toString()}\r\n`); // 5. send data to client
});
});
server.listen(port, () => {
console.log(`[server] opened server: ${JSON.stringify(server.address())}`);
});
// ---------------------------------------------
// client
// ---------------------------------------------
const client: Socket = new Socket();
client.connect(port, '127.0.0.1', () => { // 1. connect to server
console.log(`[client] connected`);
client.write('hello world!'); // 3. send data to server
});
client.on('data', serverData => { // 6. receive data from server
console.log(`[client] received data from server: ${serverData}`);
client.destroy();
});
client.on('close', () => {
console.log(`[client] connection closed`);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment