Socket到底是个什么东西

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

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

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

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

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

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


转载于:https://my.oschina.net/crazymus/blog/517095

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值