Node即学即用第二章的那个聊天示例(代码我也贴出来了),在XP上无法做出来呢?
chat.js代码如下
var net = require('net');
var chatServer = net.createServer();
chatServer.on('connection', function(client) {
client.write('Hi\n');
client.end();
});
chatServer.listen(9000);
我先在一个CMD窗口运行node chat.js
,然后用另一个CMD窗口建立telnet连接,运行以下命令
o 127.0.0.1 [9000]
然后提示我输入用户名和密码,我输入之后直接就进入了,然后就类似于刚刚打开的CMD窗口一样,没有任何信息返回,为什么呢?是我哪里操作错误了呢?
5 回复
为什么要client.end();
@Jackson 朴灵大大你何出此言呢?添加client.end()
不是为了断开建立的连接吗?
我输入用户名与密码(当前登录账户)之后CMD窗口内容变成了:
*======================================================
Welcome to Microsoft Telnet Server.
*======================================================
C:\Documents and Settings\Administrator>_
为啥别人都不回答我的问题呢,是因为都没有XP系统吗?还是因为我的问题太简单?
不过我发现可以用node建立net连接嘛(我真笨),这样也达到了验证的目的,用另一个CMD窗口执行以下文件:
var net = require('net');
var client = new net.Socket();
client.connect(9000, '127.0.0.1');
client.setEncoding('utf8');
client.on('data', function(data) {
console.log(data);
});
交互过程其实是一样的,各种系统的telnet实现有所差异,只是结果没正常显示而已。可以用wireshark抓包验证。
我的意思是你服务端先不要急着断开,看看会如何
我试过去掉client.end
,不管用