我正在尝试使 node.js 服务器和 LÖVE2D 客户端通过套接字进行通信。(只是一个简单的“hello world”测试。)node.js 和 LÖVE2D 都在同一台 PC 上运行。
我设法从 LÖVE2D 向 node.js 发送了一条消息,但我无法读取服务器的答案。
我的 node.js 服务器代码如下所示:
var net = require('net');
var mySocket;
var server = net.createServer(function(socket) {
mySocket = socket;
mySocket.on("connect", onConnect);
mySocket.on("data", onData);
});
function onConnect() {
console.log("Connected to LOVE2D");
}
function onData(d) {
if(d == "exit\0") {
console.log("exit");
mySocket.end();
server.close();
}
else {
console.log("Message from LOVE2D: " + d);
mySocket.write("Message received!", 'utf8');
}
}
server.listen(50000, "localhost");
LÖVE2D 中的客户端代码如下所示:
local host, port = "localhost", 50000
local socket = require("socket")
local tcp = assert(socket.tcp())
tcp:connect(host, port)
tcp:send("hello there")
tcp:close()
function love.draw()
love.graphics.print("can't read server answer!", 400, 300)
end
好吧,前面的代码只是发送一条消息。我应该使用什么语法从 node.js 服务器读取答案?例如,这只是给我一个错误:
local host, port = "localhost", 50000
local socket = require("socket")
local tcp = assert(socket.tcp())
tcp:connect(host, port)
local answer = tcp:send("hello there")
tcp:close()
function love.draw()
love.graphics.print(answer, 400, 300)
end
下面是一些关于 LÖVE2D 和 LuaSocket 网络的文档,但是这些文档并没有帮助我:
http://love2d.org/wiki/Tutorial:Networking_with_UDP
http://w3.impa.br/~diego/software/luasocket/
(对不起“菜鸟”问题,我对 HTTP 协议和东西真的很陌生。)