c++ - 如何在 Windows 中将套接字设置为阻塞模式?

标签 c++ networking sockets winsock

我正在做一些相当简单的跨平台 TCP 套接字编程。不幸的是,我发现在 Windows 上编译时,默认情况下我的套接字是非阻塞的,而在 OS X 上它们默认是阻塞的。如何在 Windows 上强制套接字进入阻塞模式?它们通常默认为非阻塞模式还是出现了严重错误?

我的代码部分基于这些简单示例: http://cs.baylor.edu/~donahoo/practical/CSockets/code/TCPEchoClient.c http://cs.baylor.edu/~donahoo/practical/CSockets/code/TCPEchoServer.c

最佳答案

不,普通的旧 BSD 样式套接字在 Windows 上默认不是非阻塞。请参阅 Winsock Programmer's FAQ 中的示例.

如果你使用 MFC 和它的 CAsyncSocket 困惑,那么是的,它都是非阻塞的,但那是一个 separate issue .

关于c++ - 如何在 Windows 中将套接字设置为阻塞模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1353118/

相关文章:

C++处理vector时malloc操作导致的segmentation fault

c++ - 连接字符串最好的方法是什么?

c++ - 遍历抽象类的 vector

java - Fat Java 客户端需要通过 http/https 与 Web 服务器进行双向通信 channel

c++ - 如何使用 recv() 在 C++ 套接字中接收超过 65000 个字节

javascript - 如何将 ZeroMQ 套接字与 Ratchet web-socket 库绑定(bind),以便为 php 应用程序实时应用?

c++ - 库函数的新实现并在其中调用旧实现

networking - NetSim模拟器的config.txt文件中出现错误

mysql - 如何确定mysql正在使用哪个my.cnf

c++ - WinINet异步模式灾难