I have a simple TCP server as follows:

```
var net = require('net');
var PORT = 6346;

var server = net.createServer(function(socket) {

    socket.on('connect', function() {
        console.log('Client connected: ' + socket.remoteAddress);
        socket.write('Welcome to the server!\r\n');
    });

    socket.on('end', function() {
        console.log('Client disconnected: ' + socket.remoteAddress);
    });

    socket.on('error', function() {
        console.log('Client error: ' + socket.remoteAddress);
    });

    socket.on('timeout', function() {
        console.log('Client timed out:' + socket.remoteAddress);
    });

}).listen(PORT);

```

When I connect to the server I see the expected `Client connected: 127.0.0.1` but when I disconnect I see `Client disconnected: undefined`. Why is socket.remoteAddress undefined and how can I log the IP of the client upon disconnect?