1. 问题背景: tcp是以流动的方式传输数据,没有边界的一段数据。像打开自来水管一样,连成一片,没有边界。传输的最小单位为一个报 文段(segment)。tcp Header中有个Options标识位,常见的标识为mss(Maximum Segment Size)指的是:连接层每次传输的数据有个最 ...
分类:
其他好文 时间:
2020-02-14 01:11:07
阅读次数:
91
server import jsonimport structimport socket# 接收sk = socket.socket()sk.bind(('127.0.0.1',9001))sk.listen()conn,_ =sk.accept()msg_len = conn.recv(4)dic ...
分类:
编程语言 时间:
2020-02-04 22:02:24
阅读次数:
82
# 服务端 import socketimport subprocessimport structimport json servers = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)servers.bind(('127 ...
分类:
其他好文 时间:
2020-02-02 21:25:03
阅读次数:
84
tcp传输的数据是以流的形式传输的,因此就没有办法判断到哪里结束算是自己的一个消息,这样就会出现粘包问题,多个包粘在一起了 可以使用这样一个自定义的形式来解决,一个消息分为 head+body head包括数据的长度和数据编号 , 长度和编号都是uint32类型 也就是32位 占有4个字节 , 总共 ...
分类:
其他好文 时间:
2019-12-18 00:08:16
阅读次数:
99
C/C++ socket编程教程之九:TCP的粘包问题以及数据的无边界性 C/C++ socket编程教程之九:TCP的粘包问题以及数据的无边界性 C/C++ socket编程教程之九:TCP的粘包问题以及数据的无边界性 C/C++ socket编程教程之九:TCP的粘包问题以及数据的无边界性 上节 ...
分类:
编程语言 时间:
2019-12-16 19:39:48
阅读次数:
196
TCP协议:三次握手,四次挥手 TCP协议建立双向通道。 三次握手, 建连接: 1:客户端向服务端发送建立连接的请求 2:服务端返回收到请求的信息给客户端,并且发送往客户端建立连接的请求 3:客户端接收到服务端发来的请求,返回接成功给服务端,完成双向连接 第一客戶向服务端发送请求,请求建立连接 服务 ...
分类:
其他好文 时间:
2019-12-05 22:05:19
阅读次数:
92
一、粘包问题问题1: 无法确认对方发送过来数据的大小。 ‘client.py' import socket client = socket.socket() client.connect( ('127.0.0.1', 9000)) while True: cmd = input('客户端输入的内容: ...
分类:
其他好文 时间:
2019-12-05 21:57:05
阅读次数:
93
前言:学习本章需要先了解网络协议, 详见: "网络通讯协议" 本章目录 一.什么是socket 二.为什么需要socket 三.socket的发展 四.python中的socket 五.基于TCP的socket 六.基于UDP的socket 六. 粘包问题详解 七.粘包的解决方案 引入:为什么一定要 ...
分类:
其他好文 时间:
2019-11-28 21:07:30
阅读次数:
74
[TOC] 为什么出现粘包问题? ~~~python TCP协议就类似于打电话 只有在TCP协议中才会出现粘包现象,因为TCP协议是流式协议 它的特点是将数据量小并且时间间隔比较短的数据一次性打包发送出去 本质其实还是因为我们不知道需要接收的数据的长短 ~~~ 如何解决粘包问题? ~~~python ...
分类:
其他好文 时间:
2019-10-23 20:33:56
阅读次数:
96
粘包问题: 发送端发送数据,接收端不知道应该如何接收而造成的一种数据混乱的现象 只有tcp协议才会发送粘包(数据链路层),udp(传输层)不会发生 udp不会发生粘包,udp协议本层对一次收发数据大小的限制是: 65535 - ip包头(20) - udp包头(8) = 65507 针对 使用udp ...
分类:
其他好文 时间:
2019-10-22 13:25:28
阅读次数:
77