[英]LuaSocket - TCP 2nd message not sending
我一直在搜索Google一段时间,看来这里没有解决此问题的报价。
我使用LuaSocket作为连接到我创建的外部服务器的简单方法,并且能够成功连接到它并发送信号。
但是,当我稍后尝试发送第二条消息时,即使我仍连接到套接字,外部服务器似乎也未收到该消息。
socket = require("socket")
host, port = ip, port
tcp = assert(socket.tcp())
tcp:settimeout( 0 )
tcp:connect(host, port);
msg = {
["status"]="connect",
["usrName"]=username
}
msg = Json.Encode(msg)
tcp:send(msg); -- This message, the server received this message.
-- Later in my code, I attempt to send another message.
msg = {
["status"]="anotherMessage",
["usrName"]=username
};
msg = Json.Encode(msg)
tcp:send(msg); -- This message is not sending, even though i'm still connected.
您需要显示另一侧发生的情况,因为即使连接可能已打开,也可能根本无法读取。 您也不会说“消息未发送”时到底发生了什么。 你得到一个错误吗? 脚本完成,但消息未发送?
您可以尝试以下几种方法:
tcp:settimeout(0)
,因为如果另一端还没有准备好读取消息,则发送可能会因“超时”消息而失败。 检查来自:send
调用的错误消息,以查看是否超时。
local ok, err = tcp:send(msg)
使用socket.select
来检查另一侧是否已准备好接受您发送的消息。
尝试在序列化JSON的末尾添加"\\r\\n"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.