node.js - Nodejs Require to see which client had exited -


i connected through nodejs code using telnet. when exiting telnet, 'end' event fires not show remote address , port.

var net = require('net'); var server = net.createserver(function(s) {     console.log('connect:' + s.remoteaddress + ':' + s.remoteport);     s.on('data', function(data) {       console.log('data: ' + s.remoteaddress + ':' + s.remoteport);       s.write('you said "' + data + '"');    });     s.on('end', function() {       console.log('end: ' + s.remoteaddress + ':' + s.remoteport);    });     s.write('hello\r\n'); });  server.listen(8000, function() {    console.log('server started on port 8000'); }); 

on server console, following when quit telnet

end: undefined:undefined disconnected 

any ideas?

the end event fired when client has closed connection. in case, default behaviour net.createserver close connection (but see below), there no more remoteaddress , remoteport @ time callback called.

the easiest solution store values in variable when connection created:

var server = net.createserver(function(s) {   var address = s.remoteaddress;   var port    = s.remoteport;   ...   s.on('end', function() {     console.log('end: ' + address + ':' + port);   }); }); 

another option enable allowhalfopen, stop server closing connection when client has closed side:

var server = net.createserver({ allowhalfopen : true }, function(s) {   ...   s.on('end', function() {     console.log('end: ' + s.remoteaddress + ':' + s.remoteport);     s.end(); // !!! close server side explicitly   }); }); 

Comments

Popular posts from this blog

Change php variable from jquery value using ajax (same page) -

Pull out data related to my apps from Android Play Store and iOS App Store -

How can I fetch data from a web server in an android application? -