本文引用了简书作者“骑小猪看流星”技术文章“Cookie、Session、Token那点事儿”的部分内容,感谢原作者。 1、前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现。Http短连接主要用于从服务 ...
分类:
Web程序 时间:
2018-04-09 13:25:15
阅读次数:
222
本文将使用一个gitHub开源的项目来扩展实现二次协议的开发,该项目已经搭建好了基础层架构,并实现了三菱,西门子,欧姆龙,MODBUS-TCP的通讯示例,也可以参照这些示例开发其他的通讯协议,并Pull request到这个项目中来实现这个项目的最终目标 github地址:https://githu ...
分类:
其他好文 时间:
2018-04-05 18:32:35
阅读次数:
2344
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 github地址:https://github.com/dathlin/HslCommunication ...
一、前述 Dubbo是一种提供高性能,透明化的RPC框架.是阿里开源的一个框架。 官网地址:http://dubbo.io/ 二、架构 组件解释: Provider: 提供者.发布服务的项目.Registry: 注册中心.所有提供者必须去注册中心注册自己所有能发布的服务.Consumer: 消费者. ...
分类:
其他好文 时间:
2018-03-26 22:29:45
阅读次数:
261
一、TCP是面向流的通信,这个什么意思呢,你read一下,可能从流的任何一点拿数据;然后呢,你需要对应用层的数据做封包处理。 封包最主要的一点是数据类型和数据长度,说到这里,为何http请求没有指明数据长度呢,以前http通信是短连接只有一问一答,因此不需要数据长度; 后来http1.1出现keep ...
分类:
其他好文 时间:
2018-03-21 23:20:16
阅读次数:
255
一 .两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。 2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点 通讯,比如多个Client连接 ...
分类:
其他好文 时间:
2018-03-21 16:28:44
阅读次数:
155
一、TCP报文格式 图1 TCP报文格式 二、三次握手 图2 TCP三次握手 三、四次挥手 由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是 ...
分类:
其他好文 时间:
2018-03-20 18:04:37
阅读次数:
167
第一种,使用长连接通道不断开的形式进行通信,也就是服务器和客户端的通道一直处于开启的状态。如果服务器性能足够好,并且我们的客户端数量也比较少的情况下,是适合使用长连接的通道。 第二种,采用短连接方式,一次性批量提交数据,也就是我们会把数据保存在本地临时缓冲区或者临时表里。当达到数量时,就进行批量提交 ...
分类:
Web程序 时间:
2018-03-14 22:12:38
阅读次数:
237
讨论Socket必讨论长连接和短连接 一、长连接和短连接的概念 1、长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接;后者是每次请求,都新 建一个Socket,处理完一个请求就直接关闭掉Socket。所以,其实区分长短连接就是:整个客户和服 ...
分类:
其他好文 时间:
2018-03-12 16:57:15
阅读次数:
171
服务器端:Server 客户端:Client#include <iostream> 一个服务器端怎样连接多个客户端?多线程。 服务器端的接收缓冲区小于客户端的发送缓冲区:数据流可任意拆分 缺点:出现粘包现象(发送过快,网络中卡住) 解决方法:长连接和短连接(各自建立socket) 设置包头,发送数据 ...
分类:
其他好文 时间:
2018-03-10 15:52:06
阅读次数:
179