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プロトコルなどに本当に慣れていません。)