似乎这两个选项都可以用来使套接字非阻塞/异步?
或者非阻塞和异步有什么区别?
如果您还没有,您可以在 Wikipedia 上的BSD 套接字页面上 查看非阻塞和阻塞套接字之间的区别。
此外,您可以查看 ioctlsocket() MSDN 页面以了解有关 FIONBIO 的一些详细信息。
FIOASYNC 启用一种简单形式的异步 I/O 通知。当 I/O 可能时,此命令使内核向进程或进程组发送 SIGIO 信号。只有套接字、tty 和伪 tty 实现此功能。
FIONBIO 启用非阻塞 I/O。效果类似于使用 fcntl 子例程设置 O_NONBLOCK 标志。此命令的 ioctl 子例程的第三个参数是一个指向整数的指针,该整数指示是启用还是禁用非阻塞 I/O。值 0 禁用非阻塞 I/O。
我希望这对你有所帮助。