LuaSocket 服务器不接受客户端
LuaSocket server don't accept clients
我正在我的电脑上制作 lua 脚本 运行,需要从我的 android 连接。
所以在 lua 脚本中我只是把这个:
local socket = require 'socket'
local server = socket.tcp()
print("createdserver")
server:bind('*',7070)
print("binded")
while 1 do
server:listen(32)
local client = server:accept()
-- make sure we don't block waiting for this client's line
client:settimeout(10)
-- receive the line
local line, err = client:receive()
-- if there was no error, send it back to the client
if not err then client:send(line .. "\n") end
-- done with client, close the object
client:close()
end
在 android 我得到了一个非常简单的套接字连接:
public Connection(String ip, int _port) {
//inMessage = new NetworkMessage();
buffer = new byte[16394];
try {
serverAddres = InetAddress.getByName(ip);
socket = new Socket(serverAddres, _port);
socketOut = socket.getOutputStream();
} catch (IOException e) {
Log.e("Connect", e.getMessage());
}
}
在 android 它只是停留在 "new Socket" 而没有连接。
我对 lua 不熟悉,但我的理解是您正在向套接字写入新的一行并且您希望在 Android 端接收。
通常,如果是这种情况,您需要获取 inputStream 而不是输出流,因为您正在等待结果。此外,您需要无限期地(或直到满足某些条件)在单独的线程(标准中)上收听输入流以获取数据:
while(true){
if (inputStreamReader().read() != -1){
// do you processing
}
}
我的笔记本正在更改其 IP 地址,因此我无法从 android 访问它,已解决!
我正在我的电脑上制作 lua 脚本 运行,需要从我的 android 连接。 所以在 lua 脚本中我只是把这个:
local socket = require 'socket'
local server = socket.tcp()
print("createdserver")
server:bind('*',7070)
print("binded")
while 1 do
server:listen(32)
local client = server:accept()
-- make sure we don't block waiting for this client's line
client:settimeout(10)
-- receive the line
local line, err = client:receive()
-- if there was no error, send it back to the client
if not err then client:send(line .. "\n") end
-- done with client, close the object
client:close()
end
在 android 我得到了一个非常简单的套接字连接:
public Connection(String ip, int _port) {
//inMessage = new NetworkMessage();
buffer = new byte[16394];
try {
serverAddres = InetAddress.getByName(ip);
socket = new Socket(serverAddres, _port);
socketOut = socket.getOutputStream();
} catch (IOException e) {
Log.e("Connect", e.getMessage());
}
}
在 android 它只是停留在 "new Socket" 而没有连接。
我对 lua 不熟悉,但我的理解是您正在向套接字写入新的一行并且您希望在 Android 端接收。 通常,如果是这种情况,您需要获取 inputStream 而不是输出流,因为您正在等待结果。此外,您需要无限期地(或直到满足某些条件)在单独的线程(标准中)上收听输入流以获取数据:
while(true){
if (inputStreamReader().read() != -1){
// do you processing
}
}
我的笔记本正在更改其 IP 地址,因此我无法从 android 访问它,已解决!