Socket到底是个什么东西

落爺英雄遲暮 提交于 2019-11-30 04:58:24

Socket在计算机专业术语上的翻译是“通信节点”。计算机网络中阐述,计算机之间的通信通常指的是应用程序之间的通信。而应用程序之间使用Socket来通信,可以简单的认为,Socket封装了TCP/IP协议的具体实现,我们可以通过计算机高级语言在一个抽象层上来实现计算机的通信,而不用考虑具体的细节。

最常见的通信形式是客户端-服务端形式,我们打开浏览器上网,登录QQ聊天,就是属于这种形式。浏览器/QQ是客户端,而网站所在的Web服务器,QQ聊天服务器是服务端。

服务端通过 Socket 监听一个端口,并约定协议,客户端通过 Socket 和服务端建立连接,然后通过特定的协议和服务端进行通信。

以Web服务器为例,它启动以后,监听80端口,并约定使用http协议。浏览器访问Web服务器时,建立连接,发送http请求,Web服务器处理请求,并返回内容。浏览器接收到返回信息后,在浏览器中呈现,并断开连接。

上面提到的连接实际上就是Socket连接,因为它是使用Socket来实现的。需要注意的是,上面的过程是一种最简单的形式,服务端不能主动向客户端发送数据,一次请求完成后连接就断开了。

在某些时候,Socket连接建立后会保持下来,例如聊天应用。当QQ和聊天服务器建立连接后,客户端可以向服务器发送消息,有新消息时,服务器也可以主动向客户端推送消息。连接不会断开,除非用户退出QQ,这就是Socket长连接。而我们通常见到Web服务器和浏览器之间的被称为短连接。


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!