与BSD风格的套接字函数相比,使用Windows winsock API函数有什么好处?

时间:2008-11-08 03:37:41

标签: winsock sockets

与BSD风格的功能相比,Windows使用WSA winsock功能有什么好处吗?

4 个答案:

答案 0 :(得分:2)

只有当你计划部署到像Windows 95这样的传统平台或者winsock API中有一些你绝对不能没有的东西而且你不想自己滚动时(< - 怀疑)。

答案 1 :(得分:2)

最重要的区别是Winsock中异步事件样式API的可用性。

使用Berkeley套接字时,每次readwrite您的应用程序将“阻止”直到网络准备就绪,这可能会使您的应用程序无响应(除非网络I / O在不同的主题)。

使用异步接口,您可以安排回调函数在每次接收数据或发送缓冲区为空时作为正常Windows消息循环的一部分进行调用。

答案 2 :(得分:1)

如果您围绕BSD范例进行设计,那么您的代码可以在其他平台上运行,而且移植工作量较少。如果你假设你的网络库将支持异步I / O(正如Alnitak所提到的那样),那么如果从你的下方撤出,你将不得不做更多的工作。

当然,如果您确定永远不会离开微软的温暖怀抱,请随时前往城镇。

答案 3 :(得分:0)

关于Alnitak的回答,我同意 - 我只是补充一点,你不需要使用消息循环来在套接字上使用异步操作。使用I / O完成端口是构建高性能网络应用程序的一种非常可扩展的方法。