我是网络编程的新手,我对Web Sockets感到困惑,这似乎是一项相当新的技术, POSIX Socket Programming已经存在了几十年Windows TCP/IP Socket C++。
他们之间究竟有什么区别? ,它看起来好像所有三个都与客户端和服务器之间的所有套接字连接相同。有人可以向我解释,谢谢!
答案 0 :(得分:4)
C套接字API是用于创建基于流的套接字(TCP套接字,UNIX域套接字)和基于数据报的套接字(UDP套接字)的低级机制。 POSIX API和Windows API略有不同(有时以微妙的方式... Windows有许多POSIX功能,但有时支持的选项或行为以微妙,令人惊讶的方式不同)。
WebSockets是一种在JavaScript中使用的API,它为Web开发人员提供了一种访问这种低级API功能的方法(并且作为C ++程序员可能并不感兴趣)。在Web套接字之前,Web开发人员只能使用XMLHttpRequest(XHR)来执行请求,这需要完整的HTTP请求/响应,并且不允许相同类型的持久连接和较低级API的轻量级通信
现在,就开发人员实际应该做的事情而言,您可能希望将现有库重用于任何套接字编程。有些库可以很容易地将HTTP(或RPC)服务器嵌入到您的应用程序中,或者向其他HTTP(或RPC)服务器发出请求。对于大多数应用程序员来说,这可能是您感兴趣的(除非您尝试使用网络本身做一些事情)。
答案 1 :(得分:2)
POSIX和Windows套接字分别是POSIX和Windows系统使用的API。 Windows套接字API是在POSIX(以前的BSD)API之后建模的,因此它们共享许多功能。 API可以在C和C ++中使用。
Websockets是完全不同的东西,实际上是TCP之上的协议(但是使用HTTP进行初始握手)。