nodejs第一个参数为端口,当locolhost:port的时候,输出时间错误。

var net = require('net');
var port = process.argv[2];
var getTime = function () {
    var date = new Date();
    year = date.getFullYear();
    month = formate(date.getMonth() + 1);
    day = formate(date.getDate());
    hour = formate(date.getHours());
    minute = formate(date.getMinutes());
    var time = year + '-' + month + '-' + day + ' ' + hour + ':' + minute;
    function formate(time) {
        return (time.toString().length > 1 ? '' : '0' ) + time;
    }
    console.log(time);
    return time;
};
var server = net.createServer(function(socket){
    socket.write(getTime() + '\n');
    socket.end();
}).listen(port);

图片描述

图片描述

阅读 3.5k
3 个回答

HTTP是应用层协议,TCP是传输层协议,可以粗暴地理解为:(并不严谨)

HTTP按照约定的格式封装网页,TCP负责传输封装后的网页。

上面net.createServer()创建的并不是HTTP服务器,因此无法在浏览器里访问,正确的做法如下,更多内容可以参考之前写的总结《Nodejs进阶:核心模块net入门与实例讲解

var net = require('net');

var PORT = 3000;  // 替换成你的端口
var HOST = '127.0.0.1';

// tcp客户端
var client = net.createConnection(PORT, HOST);

client.on('connect', function(){
    console.log('客户端:已经与服务端建立连接');
});

client.on('data', function(data){
    console.log('客户端:收到服务端数据,内容为{'+ data +'}');
});

client.on('close', function(data){
    console.log('客户端:连接断开');
});

client.end('你好,我是客户端');

因为nodejs的net模块只是基础的TCP模块,这里的一个socket仅仅相当于一次TCP握手,并不能完成一个页面的请求。

这是Socket,不是http,所以没办法用浏览器来查看。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏