[英]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.