精华内容
下载资源
问答
  • Websocket和TCP区别

    2021-05-22 10:05:38
    在这三者之间,SPDY和WebSocket都是与HTTP相关的协议,而TCP是HTTP底层的协议。 WebSocket则提供使用一个TCP连接进行双向通讯的机制,包括网络协议API,以取代网页服务器采用HTTP轮询进行双向通讯的机制。 ...

    按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP是应用层的协议。在这三者之间,SPDY和WebSocket都是与HTTP相关的协议,而TCP是HTTP底层的协议。

    WebSocket则提供使用一个TCP连接进行双向通讯的机制,包括网络协议和API,以取代网页和服务器采用HTTP轮询进行双向通讯的机制。

    本质上来说,WebSocket是不限于HTTP协议的,但是由于现存大量的HTTP基础设施,代理,过滤,身份认证等等,WebSocket借用HTTP和HTTPS的端口。

    由于使用HTTP的端口,因此TCP连接建立后的握手消息是基于HTTP的,由服务器判断这是一个HTTP协议,还是WebSocket协议。 WebSocket连接除了建立和关闭时的握手,数据传输和HTTP没丁点关系了。

    WebSocket也有自己一套帧协议。

    展开全文
  • 连接 WebSocket TCP(通过 WS 桥接 TCP 套接字)。 用法 首先创建一个WebSocket Server连接 var WebSocketServer = require('ws').Server; var server = new WebSocketServer({port:80, path:'/mysocket'}); 让...
  • WebSocket Socket TCP/UDP

    2018-11-24 13:53:01
    WebSocket Socket通信源码例子,TCP/UDP都有,适合网络通信入门的练习与学习,有一个在线的聊天室系统
  • 先习惯性的看了下某中文百科网站对Web Socket的介绍,觉得很囧。...https://stackoverflow.com/questions/16945345/differences-between-tcp-sockets-and-web-sockets-one-more-time 这个讨论有超过8万的阅读量。 首

    先习惯性的看了下某中文百科网站对Web Socket的介绍,觉得很囧。如果大家按照这个答案去参加BAT等互联网公司的前端开发面试,估计会被鄙视。

    还是让我们阅读一些英文材料吧。

    让我们直接看stackoverflow上的原文,然后翻译:

    原文地址:

    https://stackoverflow.com/questions/16945345/differences-between-tcp-sockets-and-web-sockets-one-more-time

    这个讨论有超过8万的阅读量。

    首先我们来阅读这段有166个赞的回答:

    When you send bytes from a buffer with a normal TCP socket, the send function returns the number of bytes of the buffer that were sent.
    当我们向一个通常的TCP套接字发送一段来自内存buffer中的字节数据时,send系统调用返回的是实际发送的字节数。
    If it is a non-blocking socket or a non-blocking send then the number of bytes sent may be less than the size of the buffer.

    如果发送数据的目的方套接字是一个非阻塞套接字或者是对写操作非阻塞的套接字,那么send返回的已发送字节数可能小于buffer中待发送字节数。

    If it is a blocking socket or blocking send, then the number returned will match the size of the buffer but the call may block.
    如果是阻塞套接字,两者会相等,因为顾名思义,如果send系统调用没有把所有待发送数据全部发送,则API调用不会返回。

    With WebSockets, the data that is passed to the send method is always either sent as a whole "message" or not at all. Also, browser WebSocket implementations do not block on the send call.

    而Web socket和TCP socket的区别,从发送的数据来看,不再是一系列字节,而是按照一个完整的"消息体"发送出去的,这个"消息体"无法进一步再分割,要么全部发送成功,要么压根就不发送,不存在像TCP套接字非阻塞操作那样出现部分发送的情况。换言之,Web Socket里对套接字的操作是非阻塞操作。

    这个区别在维基百科上也有清晰阐述:
    Websocket differs from TCP in that it enables a stream of messages instead of a stream of bytes

    再来看接收方的区别。
    原文:
    But there are more important differences on the receiving side of things. When the receiver does a recv (or read) on a TCP socket, there is no guarantee that the number of bytes returned correspond to a single send (or write) on the sender side. It might be the same, it may be less (or zero) and it might even be more (in which case bytes from multiple send/writes are received). With WebSockets, the receipt of a message is event driven (you generally register a message handler routine), and the data in the event is always the entire message that the other side sent.

    同理,在TCP套接字的场景下,接收方从TCP套接字读取的字节数,并不一定等于发送方调用send所发送的字节数。而WebSocket呢?WebSocket的接收方从套接字读取数据,根本不是像TCP 套接字那样直接用recv/read来读取, 而是采取事件驱动机制。即应用程序注册一个事件处理函数,当web socket的发送方发送的数据在接收方应用从内核缓冲区拷贝到应用程序层已经处于可用状态时 ,应用程序注册的事件处理函数以回调(callback)的方式被调用。

    看个例子:

    我通过WebSocket发送一个消息“汪子熙”:

    在调试器里看到的这个字符串作为回调函数的输入参数注入到函数体内:

    Chrome开发者工具里观察到的WebSocket消息体:

    下次面试被面试官问到TCP和WebSocket套接字的区别,相信大家应该能够知道如何回答了。

    展开全文
  • 同一个端口支持tcp和websocket 这样就不需要开两个端口了
  • 同一个端口支持tcp和websocket 这样就不需要开两个端口了 同一个端口支持tcp和websocket 这样就不需要开两个端口了
  • 看了之后思维还是很混乱,甚是说websocket是基于tcp的。现在想想误导了我好久。既然来问区别的了对吧,基础谁不知道呢。直接上关键:websockettcp的联系:websocket建立握手是通过http的,后面真正传输不再进行...

    看了好一些文章,内容也是千篇一律。看了之后思维还是很混乱,甚是说websocket是基于tcp的。现在想想误导了我好久。


    既然来问区别的了对吧,基础谁不知道呢。直接上关键:

    websocket与tcp的联系:

    websocket建立握手是通过http的,后面真正传输不再进行HTTP的交互,而是开始websocket的数据帧协议。实现客户端与服务端的数据交换。

    废话不多说上图:


    get了么!



    展开全文
  • tcpaddress是远程TCP连接的地址tcpport是远程TCP连接的端口号wsport websocket侦听本地端口号名称侦听websocket连接的名称 例子 wstcp -t bbs.sblendorio.eu -p 6510 -w 8080 -n bbs 创建一个本地服务器,该服务器...
  • 愚蠢的 WebSocket TCP 代理 (SWTP) 描述 一个非常愚蠢的 WebSocket 服务器,用于代理 TCP 连接(使用带有未修改 TCP 服务器的 websockets)。 不要重新发明轮子,使用带有这个 STUPID 代理的现有 tcp 服务器。 它...
  • WebSocket转发TCP

    千次阅读 2020-08-27 15:25:51
    通过WebSocket转发TCP协议数据 [tcp 服务,如sshd] | | <= TCP | [zserver 服务端] || || <= WebSocket || [nginx等] || || <= WebSocket || [ztun客户端] | | <= TCP | [tcp

    1 需求背景

    某些特殊原因,不能访问某些内部服务器,或服务器只开放HTTP或HTTPS端口,为了连接ssh等服务(其实有安全的方法:跳板机,这里不讲安全)

    2 方案

    通过WebSocket转发TCP协议数据

    [tcp 服务,如sshd]
     |
     |  <= TCP
     |
    [zserver 服务端]
     ||
     || <= WebSocket
     ||
    [nginx等]
     ||
     || <= WebSocket
     ||
    [ztun客户端]
     |
     | <= TCP
     |
    [tcp客户端,如secureCRT]

    3 代码

    客户端:https://github.com/zzpu/ztun

    服务端:https://github.com/zzpu/zserver

    4 效果

     

    展开全文
  • 最近学习到了websocket,Beego等知识。 因此看了Beego官方的一个聊天室例子——利用websocket实现的网页版实时会话程序。 此时想起之前一个利用tcp完成的黑窗口聊天室项目。 两者之间貌似相同,都是客户端与...
  • TCPWebSocket桥/代理JavaScript实现。 版权所有(C)2015-DenoFiend(github.com/denofiend) 根据LGPL-3许可。 有关更多信息,请参见github.com/denofiend/tcp_to_websocket。 安装并运行 $ npm install $ ...
  • 按照自己的想法用vs2010 c#编写的websocket 服务器端。 端口是8848 同时支持TCP和websocket。假如是websocket连接进入,存起来。假如是TCP连接进入,“广播”TCP发来的数据。适合初学者。
  • 2、ws服务端Socket服务端必须写成服务器的内网地址(不是127.0.0.1,此值只能本地访问没问题,外网无法访问的;测试多次) 3、外部客户端必须连接服务端的公网地址。 4、注意修改,一处不对整个通道无法正常通讯!...
  • swoole_websocket_server( "0.0.0.0 ", 9501);   $this -> serv ->set([   'worker_num ' => 1,   'dispatch_mode ' => 2,   'daemonize ' => 0,   ]);       ...
  • 全面理解WebSocket与Socket、TCP、HTTP的关系及区别 转:http://www.webzsky.com/?p=1388 1.什么是WebSocket及原理 WebSocket是HTML5中新协议、新API。 WebSocket从满足基于Web的日益增长的实时通信需求应运而生,...
  • WebSocketTcp连接

    千次阅读 2016-09-26 14:35:00
    最近做了一个项目,客户端为WebSocket页面,服务器端为Tcp控制台 。将代码贴出来,供需要的参考。 1.服务器端代码 其中服务器的Session使用了第三方插件,为TCP连接。 2.客户端代码如下 适合初学...
  • Websocket,HTTP,TCP

    2019-12-07 20:30:45
    Websocket和TCP的关系 WebSocket与HTTP 同:建立在TCP之上,同http一样通过TCP来传输数据 不同:HTTP协议为单向协议,即浏览器只能向服务器请求资源,服务器才能将数据传送给浏览器,而服务器不能主动向浏览器...
  • wstcp WebSocket以Rust编写的TCP代理 安装预编译的二进制文件在Rust编写的pag wstcp WebSocket to TCP代理发行版中提供了Linux环境的预编译二进制文件。 安装预编译的二进制文件在发行页面上可以找到Linux环境的预...
  • WebSocket与http协议一样都是基于TCP的,所以他们都是可靠的协议,Web开发者调用的WebSocket的send函数在browser 的实现中最终都是通过TCP的系统接口进行传输的。WebSocket和Http协议一样都属于应用层的协议,那么...
  • Websockify是一个WebSocketTCP的代理/桥梁。实现让让浏览器可以连接至任何应用程序/服务器/服务。采用Python, C, Node.js Ruby。
  • tcp如何实现websocket协议websocket使用场景流程如何验证合法性 websocket 使用场景 当server主动给client发送数据时。 思考:reactor+websocket如何封装? 流程 server发给client数据的前提是:确保client与server...
  • ICP/IP协议(Transmission Control Protocol/InternetProtocol):网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议传输层的TCP协议组成。协议采用了4层的层级结构,每一层都...
  • 今天来讲一下与其他协议的区别和相同点,让各位同学能够更加深入的去了解运用各种协议。 1 什么是WebSocket?  WebSocket从满足基于Web的日益增长的实时通信需求应运而生,解决了客户端发起多个Http请求到...
  • TCP/UDP 之 webSocket

    2019-07-11 17:24:16
    1. TCP协议:控制传输协议 特点:面向有链接,所有问题都要建立连接,数据安全,完整,三次握手后建立连接后才可以数据传输 TCP协议传输的客户端 package ClientAndServer_TCP; import java.io.InputStream; import...
  • websockify:WebSockets支持任何应用程序/服务器 websockify以前的名称为wsproxy,是... 要使用WebSocket'wss://'URI方案对流量进行加密,您需要生成证书密钥以供Websockify加载。 默认情况下,Websockify加载证书
  • 您可以通过HTTP,WebSocket和TCP Socket访问SerialPort。 要求 USB设备(Arduino,mbed ...) 安装 % gem install serialport-server 用法 % serialport-server --help % serialport-server /dev/tty.usb-device ...
  • WebSocket与http协议一样都是基于TCP的,所以他们都是可靠的协议,Web开发者调用的WebSocket的send函数在browser的实现中最终都是通过TCP的系统接口进行传输的。WebSocket和Http协议一样都属于应用层的协议,那么...
  • WebSocketTCP隧道 在侦听的WebSockets服务器和TCP服务器之间的基本中继。 两个套接字之间的数据只是相互呼应。 与SkotOS客户端一起使用 您很可能会在Orchil HTML5客户端上使用websocket-to-tcp-tunnel 。 对于该...
  • SpringBoot2+Netty+WebSocket前言maven依赖SpringBootApplication启动类Netty相关代码NettyServerNettyServerHandlerNettyDataSvervicewebsocket相关代码WebSocketConfig 开启WebSocket支持WebSocketServerwebsocket...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,296
精华内容 12,918
关键字:

websocket和tcp的区别