我正在使用WinSock2 api创建一个简单的控制台客户端/服务器应用程序,但我需要确保在退出应用程序时客户端的套接字正确关闭。我已经尝试使用SetConsoleCtrlHandler
但是它创建了一个主循环保持运行10秒的线程。
当用户按下关闭按钮时,有没有办法关闭套接字?
答案 0 :(得分:0)
是的,使用管理它的类包装本机Winsock2套接字。
class Socket{
SOCKET m_NativeSocket;
public:
Socket(){
m_NativeSocket = ::socket(...);
}
~Socket(){
::closesocket(m_NativeSocket);
}
};
你应该遵循这种模式,因为:
确保实现正确的移动构造函数。