我目前正在参与一个涉及套接字的项目,我只使用 Linux 的 sys/socket.h 文件。向 Microsoft 提示移植,并意识到 Winsock 是不同的。我想我有两个问题。
首先,这两种实现之间的主要区别是什么?有没有一种简单的方法来“翻译”它们?指南的链接将不胜感激,因为你们可能可以为我提供比谷歌更好的链接。
其次,微软为什么要这样做?他们的动机是什么?为什么他们不保持与其他人相同的实现?
最佳答案
如果我没有说到点,请原谅我,但是你在看 WSARecv和家人,并认为 Windows 上的整个套接字 API 与伯克利套接字 API 不同?
Berkeley API 确实存在于 Windows(请参阅 recv 和系列)并且在很大程度上与任何其他 Berkeley Sockets 实现兼容。
请参阅 MSDN 文章 "Porting Socket Applications to Winsock"有关将套接字代码移植到 Windows 的信息。
关于networking - 为什么微软以不同的方式实现套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1250139/