c++ - Windows 套接字 WSACleanup C++

标签 c++ windows sockets wsastartup wsacleanup

我在我的程序中使用套接字。由于我添加了 WSAStartup。 我的应用程序运行良好(它一直运行到收到停止信号为止)。 收到信号后,它会停止问题,如果我在程序末尾编写 WSACleanup 函数,它会崩溃,如果我删除它,它会正常终止。

谢谢

最佳答案

这是我的一个项目的摘录。

初始化:

#if defined(WIN32)
WSADATA wsaData;
WORD wVersionRequested = MAKEWORD(2, 0);
if (WSAStartup(wVersionRequested, &wsaData) != 0) {
  LOG("WSAStartup() error");
  return false;
}
#endif

serv_socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

...

清理:

#if defined(WIN32)
  /* winsock requires a special function for sockets */
  shutdown(serv_socket, SD_BOTH);
  closesocket(serv_socket);
  /* clean up winsock */
  WSACleanup();  
#else
  close(serv_socket);
#endif

希望这对您有所帮助。

关于c++ - Windows 套接字 WSACleanup C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1504464/

相关文章:

mysql - 如何使用 MySQL 或批处理文件创建文件名,其中部分文件内容需要在名称中?

c++ - 是否有围绕 Win32 的无锁 SList 的合适的 C++ 包装器?

sockets - 通过 VPN 连接失败

c++ - 如何访问 cv::canny 阈值的梯度幅值图像

windows - 使用 Puppet 启动和停止服务

c - ipv6 的 UDP 校验和验证 : how to fetch ipv6 source address from auxilliary data

c - tcp 套接字读取调用如何永远不会返回

c++ - 如何在没有临时变量的情况下传递指向整数的指针?

c++ - 删除 vector vector 中的重复 vector

c++ - 游戏的跨平台声音 API?