Last active
January 6, 2020 14:33
-
-
Save iamssen/6f9c0fb60a3cc59ede08f03393f12647 to your computer and use it in GitHub Desktop.
Understanding HTTP using Node.js "net" 1. Socket
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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