我正在做一些相当简单的跨平台 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/