我是靠谱客的博主 曾经外套,最近开发中收集的这篇文章主要介绍Web socket与TCP socket区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

先介绍一下TCP
TCP又叫传输控制协议,是面向链接的、可靠的、基于字节流的传输协议,
建立TCP链接需要三次握手,断开链接需要四次挥手,此处不再赘述。
TCP头部包括了一些字段:
序列号(seq): 这个序号保证了TCP传输报文是有序的。对面端可以通过seq来拼接报文字段。

webSocket是服务器与客户端的一种全双工通信协议,一开始的握手通过HTTP请求来完成,但是在后面的传输中是不需要HTTP的。
HTTP与Web socket都是基于TCP的,但是Web socket是双向的,HTTP请求是单向的。

发送方的区别:
而Web socket和TCP socket的区别,从发送的数据来看,不再是一系列字节,而是按照一个完整的"消息体"发送出去的,这个"消息体"无法进一步再分割,要么全部发送成功,要么压根就不发送,不存在像TCP套接字非阻塞操作那样出现部分发送的情况。换言之,Web Socket里对套接字的操作是非阻塞操作。
接收方的区别:
同理,在TCP套接字的场景下,接收方从TCP套接字读取的字节数,并不一定等于发送方调用send所发送的字节数。而WebSocket呢?WebSocket的接收方从套接字读取数据,根本不是像TCP 套接字那样直接用recv/read来读取, 而是采取事件驱动机制。即应用程序注册一个事件处理函数,当Web socket的发送方发送的数据在接收方应用从内核缓冲区拷贝到应用程序层已经处于可用状态时 ,应用程序注册的事件处理函数以回调(callback)的方式被调用。

最后

以上就是曾经外套为你收集整理的Web socket与TCP socket区别的全部内容,希望文章能够帮你解决Web socket与TCP socket区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部