请问怎么判断socket已经断开?

113 views
Skip to first unread message

Zheng Ping

unread,
Nov 1, 2017, 11:03:27 AM11/1/17
to skynet...@googlegroups.com
我有一段代码

socket.start(sid, function(id, addr)
    socket.start(id)
    local ok, err = pcall(handle_socket, id)
    if not ok then
        skynet.error("socket error", id, err)
    end
end)

我想知道当ok为nil时怎么能判断socket是否已经断开了, 我老是检测不出socket是否仍然依旧是保持连接,因而我无法正确处理业务逻辑。

请知晓者告知一二,谢谢.

--
with kind regards

云风 Cloud Wu

unread,
Nov 2, 2017, 10:38:30 AM11/2/17
to skynet...@googlegroups.com
任何 socket 错误都会导致 socket 断开,不过在出错后最好再主动调用一次 socket.close 。

Zheng Ping <kyt...@gmail.com>于2017年11月1日周三 下午11:03写道:
--
您收到此邮件是因为您订阅了Google网上论坛上的“skynet-users”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到skynet-users...@googlegroups.com
要发帖到此群组,请发送电子邮件至skynet...@googlegroups.com
访问此群组:https://groups.google.com/group/skynet-users
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/skynet-users/CAJSu_MrPnW0y%3DUS8XW2U_X5X70wjiqb4xvfqGEy%3DikmtbHdUAQ%40mail.gmail.com
要查看更多选项,请访问https://groups.google.com/d/optout

Zheng Ping

unread,
Nov 7, 2017, 9:47:23 AM11/7/17
to skynet-users
谢谢风神的回答. 我找到了socket.invalid这个函数,用它可以帮我解决问题。

在 2017年11月2日星期四 UTC+8下午10:38:30,云风写道:
Reply all
Reply to author
Forward
0 new messages