Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
var net = require('net'),
cp = require('child_process'),
util = require('util');
if (process.argv[2] === 'server') {
// Server
var server = net.createServer(function(conn) {
conn.on('data', function(data) {
console.log('server received ' + data.length + ' bytes');
});
conn.on('close', function() {
server.close();
});
});
server.listen(1234);
} else {
// Client
var serverProcess = cp.spawn(process.execPath, [process.argv[1], 'server']);
serverProcess.stdout.pipe(process.stdout);
serverProcess.stderr.pipe(process.stdout);
var client = net.createConnection(1234, '127.0.0.1');
client.on('connect', function() {
var alot = new Buffer(1024),
alittle = new Buffer(1);
for (var i = 0; i < 100; i++) {
client.write(alot);
}
// Block the event loop for 1 second
var start = (new Date()).getTime();
while ((new Date).getTime() < start + 1000) {}
client.write(alittle);
client.destroySoon();
});
}
@bnoordhuis

Needs a little love to run reliably on linux, the client tries to connect (and fails with ECONNREFUSED) before the server process has started up.

https://gist.github.com/325b90295f17c751ed06

@bnoordhuis

The test passes on linux, by the way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.