WebSocket++服务器结束,但端口显示仍在使用中
WebSocket++ server ending, but port says still in use
目前,我通过关闭(或刷新(客户端浏览器选项卡来结束我的服务器。当在服务器上调用 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)
我必须等待几分钟才能再次使用服务器。这既烦人,又在生产中具有潜在危险。
知道会发生什么吗?
照大卫说的做,这样你就知道你在做什么。然后使用 websocketspp 函数 s->set_reuse_addr(true(
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 为什么在这个代码结束循环中没有得到结束
- 程序崩溃并显示"std::out_of_range"错误
- 试图对缓存进行跨步测试,但程序并没有结束
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 程序显示以退出代码 0; 结束
- 如何显示函数开始、结束行和函数体?
- 程序不会在必须时结束并显示输出
- WebSocket++服务器结束,但端口显示仍在使用中
- 在开关循环周期结束时未显示的游戏总量
- 应用程序在显示最终输出之前结束
- 在制作过程结束时显示警告/错误的数量
- 编译后的c++输出文件在程序结束时显示随机字符
- 在sentinel使用条件语句结束循环后显示最大值
- 我如何写一个Qt正则表达式来突出显示字符串开始和结束与非单词字符