我用C#做了一个socket服务端,用C#做的客户端就可以发送接收到数据,然后使用lua可以连接,为啥不能发送数据呢?
在网上找的一段lua代码
local socket = require("socket")--引入Luasocket
local client = false;
if not socket then
print("load socket module failed.")
else
print("成功加载socket方法.")
local host = "192.168.1.200"
local port = 8000
client = socket.connect(host, port)
if not client then
print("connect server failed.")
else
print("发送数据至服务器");
client:send("这是一个lua客户端!");
print("发送完成");
client:settimeout(0);
end
end
function receive_message()
if client then
local recvstr, err = client:receive();
print("recvstr, err:", recvstr, err);
end
end
这种网络通讯的事情,最好多应用一下第三方软件,找一个网络调试助手,用来与Lua连接发送一下数据,看看对方能不能收到,再对比一下自己的代码;这样可以比较方便的定位问题,不然你这样猜着弄,事情是难以向前推进的;
如果还不行,那就用wireshark来监视一下数据查看一下数据交互状况。
我想是否你的client:send("这是一个lua客户端!");
没有结束标记,造成的,我记得没收到\n则无法不会实际发送数据,
修改为client:send("这是一个lua客户端!\n");试试看
或者在client:send("这是一个lua客户端!")后面追加client:send("\n");
问题已经解决,是因为我的socket服务端做的不标准导致的,换成标准的就好了
怎样才能都给分呢??????????????????????