我是网络编程的新手,对Web Sockets、 POSIX Socket Programming和Windows TCP/IP Socket C++感到困惑。
它们之间到底有什么不同?在我看来,这三个都是一样的,都是客户端和服务器之间的套接字连接。有人能给我解释一下吗,谢谢!
发布于 2014-01-21 19:52:11
C套接字API是用于创建基于流的套接字(TCP套接字、UNIX域套接字)和基于数据报的套接字(UDP套接字)的底层机制。这方面的POSIX API和Windows API略有不同(有时以微妙的方式...Windows有许多POSIX函数,但有时支持的选项或行为会以微妙、令人惊讶的方式不同)。
WebSockets是一种在JavaScript中使用的应用程序接口,它为web开发人员提供了一种访问这种低级应用程序接口功能的方法(作为C++程序员,您可能对此并不感兴趣)。在web套接字出现之前,web开发人员只能使用XMLHttpRequest (XHR)来执行请求,这需要完整的HTTP请求/响应,并且不允许类似于低级API的持久连接和轻量级通信。
现在,就您作为开发人员实际应该做的事情而言,您可能希望重用现有的库来进行任何套接字编程。有一些库可以轻松地将HTTP (或RPC)服务器嵌入到您的应用程序中,或者向其他HTTP (或RPC)服务器发出请求。对于大多数应用程序程序员来说,这可能是您感兴趣的(除非您正在尝试对网络本身做一些奇特的事情)。
发布于 2014-01-21 19:49:16
POSIX和Windows套接字分别是POSIX和Windows系统使用的API。Windows套接字API模仿了POSIX (以前的BSD) API,因此它们共享了许多功能。这些API既可以在C中使用,也可以在C++中使用。
Websockets是完全不同的东西,实际上是TCP之上的协议(但使用HTTP进行初始握手)。
https://stackoverflow.com/questions/21257153
复制相似问题