Socket在计算机专业术语上的翻译是“通讯节点”。计算机网络中阐述,计算机之间的通讯一般指的是应用程序之间的通讯。而应用程序之间使用Socket来通讯,能够简单的认为,Socket封装了TCP/IP协议的具体实现,咱们能够经过计算机高级语言在一个抽象层上来实现计算机的通讯,而不用考虑具体的细节。 浏览器
最多见的通讯形式是客户端-服务端形式,咱们打开浏览器上网,登陆QQ聊天,就是属于这种形式。浏览器/QQ是客户端,而网站所在的Web服务器,QQ聊天服务器是服务端。 服务器
服务端经过 Socket 监听一个端口,并约定协议,客户端经过 Socket 和服务端创建链接,而后经过特定的协议和服务端进行通讯。 网络
以Web服务器为例,它启动之后,监听80端口,并约定使用http协议。浏览器访问Web服务器时,创建链接,发送http请求,Web服务器处理请求,并返回内容。浏览器接收到返回信息后,在浏览器中呈现,并断开链接。 网站
上面提到的链接实际上就是Socket链接,由于它是使用Socket来实现的。须要注意的是,上面的过程是一种最简单的形式,服务端不能主动向客户端发送数据,一次请求完成后链接就断开了。 spa
在某些时候,Socket链接创建后会保持下来,例如聊天应用。当QQ和聊天服务器创建链接后,客户端能够向服务器发送消息,有新消息时,服务器也能够主动向客户端推送消息。链接不会断开,除非用户退出QQ,这就是Socket长链接。而咱们一般见到Web服务器和浏览器之间的被称为短链接。 计算机网络