Last active
September 8, 2021 14:31
-
-
Save serhatates/f5b3048f3238b82750100909303afacf to your computer and use it in GitHub Desktop.
Server - Client TCP [node.js]
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
/* | |
======== | |
Client | |
======== | |
*/ | |
var net = require('net'); | |
const HOST = '127.0.0.1'; | |
const PORT = 8888; | |
var client = new net.Socket(); | |
client.connect(PORT, HOST, function() { | |
console.log('Connected'); | |
client.write('Hello, server! Love, Client.'); | |
}); | |
/* Add a 'data' event handler for the client socket | |
data is what the server sent to this socket */ | |
client.on('data', function(data) { | |
console.log('Received: ' + data); | |
client.destroy(); // kill client after server's response | |
}); | |
// Add a 'close' event handler for the client socket | |
client.on('close', function() { | |
console.log('Connection closed'); | |
}); |
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
/* | |
======== | |
Server | |
======== | |
*/ | |
var net = require('net'); | |
var server = net.createServer(function(socket) { | |
console.log('Connected: ' + socket.remoteAddress + ':' + socket.remotePort); | |
socket.write('Echo server\r\n'); | |
socket.pipe(socket); | |
// Add a 'data' event handler to this instance of socket | |
socket.on('data', function (data) { | |
console.log('data ' + socket.remoteAddress + ': ' + data); | |
// Write the data back to the socket | |
socket.write('You said "' + data + '"'); | |
}); | |
// Add a 'close' event handler to this instance of socket | |
socket.on('close', function (data) { | |
console.log('Close: ' + socket.remoteAddress + ' ' + socket.remotePort); | |
}); | |
}); | |
// Add a 'error' event handler to this instance of socket | |
server.on('error', (e) => { | |
// error example | |
if (e.code === 'EADDRINUSE') { | |
console.log('Address in use, retrying...'); | |
setTimeout(() => { | |
server.close(); | |
server.listen(8888, function () { | |
console.log('server listening to %j', server.address()); | |
}); | |
}, 1000); | |
} | |
}); | |
server.listen(8888, function () { | |
console.log('server listening to %j', server.address()); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment