aresnet
aresnet
采纳率100%
2018-08-29 02:43 阅读 1.7k

如何实现C# 与Lua的socket通信?

40

我用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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    phenix2009 白色一大坨 2018-08-29 03:02

    这种网络通讯的事情,最好多应用一下第三方软件,找一个网络调试助手,用来与Lua连接发送一下数据,看看对方能不能收到,再对比一下自己的代码;这样可以比较方便的定位问题,不然你这样猜着弄,事情是难以向前推进的;
    如果还不行,那就用wireshark来监视一下数据查看一下数据交互状况。

    点赞 评论 复制链接分享
  • py8105 py_free 2018-08-29 05:19

    我想是否你的client:send("这是一个lua客户端!");
    没有结束标记,造成的,我记得没收到\n则无法不会实际发送数据,
    修改为client:send("这是一个lua客户端!\n");试试看

    点赞 评论 复制链接分享
  • py8105 py_free 2018-08-29 05:20

    或者在client:send("这是一个lua客户端!")后面追加client:send("\n");

    点赞 评论 复制链接分享
  • aresnet aresnet 2018-08-29 05:26

    问题已经解决,是因为我的socket服务端做的不标准导致的,换成标准的就好了

    点赞 评论 复制链接分享
  • aresnet aresnet 2018-08-29 05:31

    怎样才能都给分呢??????????????????????

    点赞 评论 复制链接分享

相关推荐