目前,我通过关闭(或刷新)客户端浏览器选项卡结束我的服务器。当在服务器上调用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)我得等几分钟才能再次使用服务器。这既烦人,又有潜在的生产危险。
有什么好主意吗?
发布于 2017-07-12 06:17:31
照大卫说的去做,这样你就知道你在做什么。然后使用websocketspp函数s->set_重用_addr(True)
https://stackoverflow.com/questions/45002350
复制相似问题