# 服务端和接收端的send和reve没有任何关系,只与协议之间有关系
# 应用程序产生的数据一定会交给操作系统,并由操作系统往外发送
# 发送端什么时候会清空自己的内存?
# 收到接收端的ACK响应以后才会清除自己的缓存
# 粘包的本质在于接收端在缓存接收,不知道从缓存区接收多少
# 粘包的两种情况:1.发送间隔短,数据量小;2.接收数据量过大
# 接收和发送数据一次不要超过8k(8096个字节),否则会失真
# socket的sendall方法,MTU值最多能发送1500Bytes,就是说发送数据大时,按照分段发出再重新组合,分段越大,再组合就越复杂
# 重新组合后接收的数据丢失的可能性就越大
# 解决粘包的思路:在发包之前告诉接收端发出的数据大小
# 解决无法用socket实现并发,需要使用socket server实现并发
# 多线程服务端,可以实现并发,可以同时开启多个任务等待链接,ThreadingTCPServer(tuple格式的(ip+prot),类名)
#详细代码请见Socket_Server_31 Socket_Client_31 Socket_Client_31_1
# socketserver模块介绍
# BaseServer是socket模块内部定义的一个类
# server类:处理链接
# GrandPa Dad Son
# | | |
# BaseServer<--TCPServer---<UDPServer
# BaseServer
# TCPServer
# UDPServer
# UnixStreamServer
# UnixDatagramServer
#######################################################################################################
# request类:处理通信
# BaseRequestHandler
# StreamRuquestHandler 流式传输处理方法
# DatagramRuquestHandler 数据报传输方法
# ForkingMixIn
# Forking:进程,与并发有关,ForkingServer多进程的开销高于多线程
# Threading:线程,与并发有关,
# 对于TCP来说self.ruquest接收到的是coon,
# 对于UDP来说self.request接收到的就是实际的消息

Pyhton学习——Day31的更多相关文章

  1. Pyhton学习——Day26

    #多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclass ...

  2. pyhton 学习

    官方学习文档 https://docs.python.org/3/tutorial/

  3. 20190320_head first pyhton学习笔记之构建发布

    1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name ...

  4. Pyhton学习——Day2

    Python开发IDE(工具)Pycharm.eclipse1.循环while 条件 #循环体 #条件为真则执行 #条件为假则执行break用于退出所有循环continue用于退出当前循环 2.Pyc ...

  5. Pyhton学习——Day28

    #上下文协议:文件操作时使用with执行# with open('a.txt','w',encoding='utf-8') as f1:# with语句,为了让一个对象兼容with语句,必须在这个对象 ...

  6. Pyhton学习——Day27

    # hasattr(obj,'name')-->obj.name# getattr(obj,'name',default = 'xxx')--->obj.name# setattr(obj ...

  7. Pyhton学习——Day25

    #面向对象的几个方法#1.静态方法@staticmethod,不能访问类属性,也不能访问实例属性,只是类的工具包#2.类方法:@classmethod,在函数属性前加上类方法,显示为(cls)代表类, ...

  8. Pyhton学习——Day24

    # #面向对象设计:# def dog(name,gender,type):# def jiao(dog):# print('One Dog[%s],wfwfwf'%dog['name'])# def ...

  9. Pyhton学习——Day23

    #re模块方法:findall search#findall:返回所有满足匹配条件的数值,放在列表里#search : #函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象 ...

随机推荐

  1. 洛谷P2296 寻找道路_简单BFS

    Code: #include<cstdio> #include<queue> #include<algorithm> using namespace std; co ...

  2. 洛谷P1466 集合 Subset Sums_01背包水题

    不多解释,适当刷刷水… Code: #include<cstdio> #include<algorithm> using namespace std; const int ma ...

  3. 洛谷 P2365 任务安排_代价提前计算 + 好题

    最开始,笔者将状态 fif_{i}fi​ 定义为1到i的最小花费 ,我们不难得到这样的一个状态转移方程,即 fi=(sumti−sumtj+S+Costj)∗(sumfi−sumfj)f_{i}=(s ...

  4. Unsupported platform for fsevents@1.2.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

    系统:win10 使用 npm 安装依赖时报错: Unsupported platform for fsevents@1.2.3: wanted {"os":"darwi ...

  5. 在Django运行安装mysqlclient和pymysql

    推荐使用douban提供的pipy国内镜像服务,如果想手动指定源,可以在pip后面跟-i 来指定源. 下载mysqlclient为例: pip install mysqlclient -i http: ...

  6. 22 链表中倒数第k个节点(第3章 高质量的代码-代码的鲁棒性)

    题目描述: 输入一个链表,输出该链表中倒数第k个结点. 尾节点是倒数第一个节点 测试用例:   功能测试(第k个节点在中间.是头节点.是尾节点) 特殊输入测试(链表头节点是nullptr指针.链表的头 ...

  7. -2 caffe数据结构

    一.Blob 使用: 访问数据元素: 计算diff: 保存数据与读取数据: 二.Layer 三.Net

  8. 训练1-L

    n个人一起排队接水,第i个人需要ai的时间来接水. 1 <= n <= 1000 1 <= a,i<= 1000 同时只能有一个人接水,正在接水的人和没有接水的人都需要等待. ...

  9. SpringMVC-HandlerMapping和HandlerAdapter

    网上介绍HandlerMapping和HandlerAdapter的文章很多,今天我用自己的理解和语言来介绍下HandlerMapping和HandlerAdapter 一. HandlerMappi ...

  10. BA--关于江森的学习笔记

    机房功率密度:“每机架”功耗 数据中心效率:平均 PUE 2.5,百度是1.36,苹果是1.06 绿色数据中心:PUE<1.58 机房环境:空气质量,配电,UPS,空气处理系统,发电机,江森OD ...