在 Windows 上使用 select() 和 STDIN?

net*_*elw 6 c sockets windows select stdin

来自 linux 背景,我习惯了一切都是文件的概念,即套接字和标准输入。

这使得使用 select() 编写简单的服务器/客户端变得容易,其中我在 fdset 中包含 STDIN,因此它允许我使用终端进行输入,特别是用于调试。

然而,转移到 Windows,“一切都是文件”的概念不再成立。将 select() 用于标准输入(即使在将 STDIN_FILENO 定义为 0 之后)也根本行不通。

使用 select()(对于标准输入和实际套接字)移植代码以在 Windows 上工作的最佳方法是什么?

ryy*_*ker 3

您确实已经(部分)回答了这个问题。Windows 和 Linux 上的套接字规则相似(就概念而言),但并不完全相同。

这是讨论将 Windows 移植到 Linux 的链接。

这是将 Linux 移植到 Windows 的一个例子。(阅读底部帖子中的链接。)