WebSocket ++服务器结束,但端口仍然在使用

时间:2017-07-10 00:37:34

标签: c++ websocket server port websocket++

目前,我通过关闭(或刷新)客户端浏览器标签来结束我的服务器。当在服务器上调用WebSocket关闭函数时,服务器停止侦听,关闭所有连接等,然后退出。这是代码:

void onClose(server* s, websocketpp::connection_hdl hdl) {
    bool running = false;
    s->stop_listening ();
    for (vector<Player *>::iterator it = players.begin(); it != players.end(); ++it) {
        Player *p = *it;
        s->pause_reading(p->io);
        s->close(p->io, websocketpp::close::status::normal, "");
    }
    s->stop ();
    exit (0);
}

在上面的代码片段中,我循环遍历所有“玩家”(连接的客户端)。 p->io的使用是指websocketpp::connection_hdl

然而,当我再次运行服务器时,我收到此错误:

[info] asio listen error: system:98 (Address already in use)

在我再次使用服务器之前,我必须等待几分钟。这既烦人又有生产潜在危险。

任何想法可能会发生什么?

1 个答案:

答案 0 :(得分:1)

大卫这么说,所以你知道你在做什么。然后使用websocketspp函数s-&gt; set_reuse_addr(true)