networking - 为什么微软以不同的方式实现套接字?

标签 networking sockets winsock

我目前正在参与一个涉及套接字的项目,我只使用 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/

相关文章:

c# - C#连续套接字监听

c++ - 如何使用getaddrinfo()?

c++ - 对 Winsock DEFAULT_PORT 的 PCSTR 的 Int

networking - 是否可以找出直接有线连接设备的MAC地址?

java - 如何使用selenium(java)关闭桌面互联网?

c++ - 使用 C++/C 的安全网络编程

networking - UDP数据包可以被分割成几个较小的数据包吗

asp.net-mvc - 无法使用 smtpclient 通过 localhost iis 站点发送邮件

sockets - Alpakka UDP : How can I respond to received datagrams via the already bound socket?

C++ 所有用于短信返回的 AT 命令的错误 | PC<->通过蓝牙和 winsocket 的移动连接