【发布时间】:2018-01-02 20:02:05
【问题描述】:
所以我脑子里有个想法,当你运行 nodejs 脚本时,它会在端口 8080 上启动 http(express) 服务器,在端口 1337 上启动常规 tcp(net) 服务器。当你通过 netcat 连接到 tcp 服务器并发送“ alert" 它通过 javascript 在网页上运行 alert() 命令。这是代码,但 if 语句不起作用(它正在打印数据但在我的网络浏览器上没有警报)
var app = require("express")();
var http = require("http").Server(app);
var io = require("socket.io")(http);
var net = require("net");
app.get("/", function(req, res) {
res.sendFile(__dirname + "/index.html");
});
var server = net.createServer();
io.on("connection", function(sock) {
console.log("Client connected");
server.on("connection", function(conn) {
var remoteAddress = conn.remoteAddress + ":" + conn.remotePort;
console.log("New client: " + remoteAddress);
conn.on("data", function (data) {
console.log(data.toString())
if (data.toString() == "alert") {
console.log("YES ALERT");
io.emit("HELLO");
}
});
conn.once("close", function () {
console.log(remoteAddress + " disconnected");
});
conn.on("error", function (error) {
console.log(remoteAddress + " Error: " + error);
});});
});
server.listen(1337, function() {
console.log("Listening on 1337");
});
http.listen(8080, function() {
console.log("Web server started on 8080");
});
【问题讨论】:
-
console.log(data) 显示什么?
-
我通过 netcat 发送的数据
-
我的意思是控制台到底显示了什么
-
console.log(data) 显示:
-
console.log(data.toString()) 显示实际数据
标签: javascript node.js tcp