mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.2 KiB
56 lines
1.2 KiB
include("mjsunit.js");
|
|
PORT = 23123;
|
|
|
|
binaryString = "";
|
|
for (var i = 0; i < 256; i++) {
|
|
var j = 255 - i;
|
|
var s = "'\\" + j.toString(8) + "'";
|
|
S = eval(s);
|
|
puts(s + " " + JSON.stringify(S) + " " + S.charCodeAt(0));
|
|
node.assert(S.charCodeAt(0) == j);
|
|
binaryString += S;
|
|
}
|
|
|
|
var echoServer = node.tcp.createServer(function (connection) {
|
|
connection.setEncoding("raws");
|
|
connection.addListener("receive", function (chunk) {
|
|
puts("recved: " + JSON.stringify(chunk));
|
|
connection.send(chunk, "raws");
|
|
});
|
|
connection.addListener("eof", function () {
|
|
connection.close();
|
|
});
|
|
});
|
|
echoServer.listen(PORT);
|
|
|
|
var recv = "";
|
|
var j = 0;
|
|
|
|
var c = node.tcp.createConnection(PORT);
|
|
|
|
c.setEncoding("raws");
|
|
c.addListener("receive", function (chunk) {
|
|
if (j++ < 256) {
|
|
c.send([j]);
|
|
} else {
|
|
c.close();
|
|
}
|
|
recv += chunk;
|
|
});
|
|
|
|
c.addListener("connect", function () {
|
|
c.send(binaryString, "raws");
|
|
});
|
|
|
|
c.addListener("close", function () {
|
|
p(recv);
|
|
echoServer.close();
|
|
});
|
|
|
|
process.addListener("exit", function () {
|
|
assertEquals(2*256, recv.length);
|
|
for (var i = 0; i < 256; i++) {
|
|
assertEquals(i, recv.charCodeAt(255+i));
|
|
assertEquals(i, recv.charCodeAt(255-i));
|
|
}
|
|
});
|
|
|