net*_*elw 6 c sockets windows select stdin
来自 linux 背景,我习惯了一切都是文件的概念,即套接字和标准输入。
这使得使用 select() 编写简单的服务器/客户端变得容易,其中我在 fdset 中包含 STDIN,因此它允许我使用终端进行输入,特别是用于调试。
然而,转移到 Windows,“一切都是文件”的概念不再成立。将 select() 用于标准输入(即使在将 STDIN_FILENO 定义为 0 之后)也根本行不通。
使用 select()(对于标准输入和实际套接字)移植代码以在 Windows 上工作的最佳方法是什么?
您确实已经(部分)回答了这个问题。Windows 和 Linux 上的套接字规则相似(就概念而言),但并不完全相同。
这是将 Linux 移植到 Windows 的一个例子。(阅读底部帖子中的链接。)