python中网络编程中的黏包现象

黏包中的关键因素 : 缓冲区 缓冲区 : 将程序和网络解耦 缓冲区大致有输入缓冲区 和 输出缓冲区两种形式,这也是产生黏包的因素.大致的缓冲情况 如下图所示: 每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。 write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送到目标机器。一旦将数据写入到缓冲区,函数就可以成功返回,不管它们有没有到达目标机器,也不管它们何时被发送到网络,这些都是TCP协议负责的事情。
分类: 其他 发布时间: 01-04 23:18 阅读次数: 0

docker 部署springboot应用

第一步:搭建springboot的web应用,可在CMD命令行中通过mvn install命令将应用打成jar包:如demo-0.0.1-SNAPSHOT.jar 第二步:将jar包copy到centos文件系统中,指定目录示例为:/usr/local/demo-0.0.1-SNAPSHOT.jar 第三步:构建docker镜像:此处以docker build方式构建 a.创建dockerfile文件 1 2 3 4 5 6 7 8 9 10 11 # 指定一个基础镜像centos FROM
分类: 其他 发布时间: 01-04 23:18 阅读次数: 0

控制APP启动:1-正常使用,2-不能使用

canWorks
分类: 其他 发布时间: 01-04 23:18 阅读次数: 0

[ZJOI2016] 大森林

Portal 这题的确很神奇. 考虑每棵树是不会互相影响的, 所以我们可以将询问离线来做. 因为每次生长出来的节点编号都是一样且独一无二的,那么这些节点一定可以重复利用. 我们就只用建立一棵树来维护, 然后通过不断变化形态来解决问题. 因为我们询问的是路径长度, 所以询问点的祖先长了许多不存在的节点也无所谓. 因为在没有1操作的时间内, 所有的节点都是长到一起的. 那么我们每次转嫁节点比较麻烦, 所以我们考虑建立一个不存在的点来维护. 那么如果有一个1操作, 我们就新建一个虚点, 把期间所有的
分类: 其他 发布时间: 01-04 23:18 阅读次数: 0

[Codeforces 600E] Lomsat gelral

[题目链接] https://codeforces.com/contest/600/problem/E [算法] 对于每一个点建立一棵线段树 , 维护当前点的子树中每个点的出现次数 可以通过深度优先遍历从下到上进行线段树合并 时间复杂度 : O(NlogN) [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 100010 #define MAXP 5000005 typedef long long ll; typede
分类: 其他 发布时间: 01-04 23:18 阅读次数: 0

H5+MUI上传文件

应用场景:MUI+H5+WEBAPI 今天在给我外甥女调手机端上传图片的时候,发现他是直接调用的MUI下的api,直接调取相册或者相机,到最后只看见了一个文件的路径,所以以前写的上传文件就不太好套上去了,我又比较懒(`・ω・´),我就去查MUI的api,功夫不负有心人让我找到了MUI下用来专门处理上传的方法,我也就不卖弄文章了,毕竟我搞前端也是很让人捉急,献丑了 js代码: 1 var task = plus.uploader.createUpload( "http://47.94.245.
分类: 其他 发布时间: 01-04 23:18 阅读次数: 0

ECharts基础

echarts: js引用: <script type="text/javascript" src="js/echarts.js"></script> 配置: 定义一个div容器 <div id="chartmain" style="width:600px; height: 400px;"></div> //初始化 var myChart = echarts.init(document.getElementById('main')); 复制option函数 //将你写的配置文件传入带echar
分类: 其他 发布时间: 01-04 23:18 阅读次数: 0

考勤sql语句

版权声明: https://blog.csdn.net/eds124/article/details/85755563 select name,CHECKTIME from USERINFO,CHECKINOUT where USERINFO.USERID = CHECKINOUT.USERID and CHECKTIME between '2018-11-30' and '2019-1-1' order by name asc ,CHECKTIME asc
分类: 其他 发布时间: 01-04 23:17 阅读次数: 0

母版页菜单使用

版权声明: https://blog.csdn.net/eds124/article/details/85775431 <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T
分类: 其他 发布时间: 01-04 23:17 阅读次数: 0

Flask1.0.2系列(十六) 扩展

英文原文地址:http://flask.pocoo.org/docs/1.0/extensions/ 若有翻译错误或者不尽人意之处,请指出,谢谢~ 扩展是为Flask应用程序添加功能的额外的包。举个栗子,一个扩展可以添加发送邮件的支持,或者连接到一个数据库的支持。一些扩展添加了全新的框架来帮助创建特定类型的应用程序,比如ReST API。 1. 寻找扩展 Flask罗占通常被命名为“Flask-Foo”或者“Foo-Flask”。很多扩展被列举在Extension Registry,这些扩展会
分类: 其他 发布时间: 01-04 23:17 阅读次数: 0

Flask1.0.2系列(十七) 命令行接口

英文原文地址:http://flask.pocoo.org/docs/1.0/cli/ 若有翻译错误或者不尽人意之处,请指出,谢谢~ 在你的虚拟环境中安装Flask的时候会安装flask脚本——一个Click命令行接口。从终端执行,这个脚本能够访问内置的、扩展的、以及应用程序定义的命令。--help选项能够获取更多关于任何命令和选项的信息。 1. 检测应用程序 flask命令是由Flask安装的,而不是由你的应用程序安装的;为了使用flask命名,你必须告诉它,哪里能找到你的应用程序。FLAS
分类: 其他 发布时间: 01-04 23:16 阅读次数: 0

Flask1.0.2系列(十八) 开发服务器

英文原文地址:http://flask.pocoo.org/docs/1.0/server/ 若有翻译错误或者不尽人意之处,请指出,谢谢~ 从Flask0.11版本开始,这里有多种内置方法来运行一个开发服务器。最好的方法是使用flask命令行工具,但是你也可以继续使用Flask.run()函数。 1. 命令行 在开发时,强烈推荐使用flask命令行脚本(上一章内容)。因为它提供了一个出众的重载体验。基本用法如下: $ export FLASK_APP=my_application $ expo
分类: 其他 发布时间: 01-04 23:16 阅读次数: 0

Flask1.0.2系列(十九) 在Shell下工作

英文原文地址:http://flask.pocoo.org/docs/1.0/shell/ 若有翻译错误或者不尽人意之处,请指出,谢谢~ (新增于版本0.3。) 很多人喜欢Python的原因之一是其有用交互式shell。shell允许你实时地执行Python命令并且立即会得到一个返回结果。Flask本身不包含一个交互式shell,因为它不需要预先设置任何特定的设置,仅仅导入你的应用程序并且开始运行即可。 有一些方便的助手可以使你在shell中获取一个更愉快的体验。交互式控制台会话的最大问题在于
分类: 其他 发布时间: 01-04 23:16 阅读次数: 0

Flask1.0.2系列(二十) Flask相关的模式

英文原文地址:http://flask.pocoo.org/docs/1.0/patterns/ 若有翻译错误或者不尽人意之处,请指出,谢谢~ 某些东西很常见,你可能在大多数Web应用程序中都能发现它们。举个栗子,相当多的应用程序使用了关系型数据库,以及用户验证。在这种情形下,它们很可能在开始请求的时候打开一个数据库连接,并且获取当前登录用户的信息。在请求的最后,数据库连接将被再次关闭。 在Flask Snippet Archives文章中有更多用户贡献的代码片段和模式。 1. 大型应用程序
分类: 其他 发布时间: 01-04 23:16 阅读次数: 0

python学习笔记9(字典与集合)

字典与集合 字典 定义: 使用键-值(key-value)存储,具有极快的查找速度 注意: 字典是无序的 key的特性: 1、字典中的key必须唯一 2、key必须是不可变对象 3、字符串、整数等都是不可变的,可以作为key 4、list是可变的,不能作为key 思考: 保存多位学生的姓名与成绩 使用字典,学生姓名为key,学生成绩作为值 dict1 = {"tom":60, "lilei":70} 元素的访问 获取: 字典名[key] print(dict1["lilei"]) #prin
分类: 其他 发布时间: 01-04 23:15 阅读次数: 0

python学习笔记10(迭代器)

可迭代对象与迭代器 可迭代对象: 可以直接作用于for循环的对象统称为可迭代对象(Iterable)。可以用isinstance()去判断一个对象是否是Iterable对象 可以直接作用于for循环的数据类型一般分两种 1、集合数据类型,如list、tuple、dict、set、string 2、是generator,包括生成器和带yield的generator function from collections import Iterable print(isinstance([],
分类: 其他 发布时间: 01-04 23:15 阅读次数: 0

python学习笔记11(函数)

函数 概述: 在一个完整的项目中,某些功能会反复的使用。那么会将功能封装成函数,当我们要使用功能的时候直接调用函数即可 本质:函数就是对功能的封装 优点 1、简化代码结构,增加了代码的复用度(重复使用的程度) 2、如果想修改某些功能或者调试某个BUG,只需要修改对应的函数即可 定义函数: 格式: def 函数名(参数列表): 语句 return 表达式 注释: def :函数代码块以def关键字开始 函数名: 遵循标识符规则 (): 是参数列表的开始和结束 参数列表(参数1,参数2,……,参数
分类: 其他 发布时间: 01-04 23:15 阅读次数: 0

python学习笔记12(装饰器、偏函数、变量作用域)

装饰器、偏函数、变量作用域 装饰器 定义: 是一个闭包,把一个函数当做参数,返回一个替代版的函数 本质: 就是一个返回函数的函数 示例: #简单的装饰器 def func1(): #定义了一个函数 print("sunck is a good man") #希望在不改变上面函数的情况下,给函数添加别的功能 #定义一个简单的装饰器 def outer(func): #输入的是一个函数 def inner(): #在inner函数中给输入的函数添加功能
分类: 其他 发布时间: 01-04 23:14 阅读次数: 0

python学习笔记13(异常处理)

异常处理 需求: 当程序遇到问题时不让程序结束,而越过错误继续向下执行 try……except……else语句 格式: try: 语句t except 错误码 as e: 语句1 except 错误码 as e: 语句2 …… except 错误码 as e: 语句n else: 语句e 注意: else语句可有可无 作用: 用来检测try语句块中的错误,从而让except语句捕获错误信息并处理 逻辑: 当程序执行到try-except-else语句时
分类: 其他 发布时间: 01-04 23:14 阅读次数: 0

python学习笔记14(文件读写)

文件读写 读文件 python读文件流程: 1、打开文件 2、读文件内容 3、关闭文件 注释: 1、打开文件 open(path, flag[, encoding][, errors]) path: 要打开文件的路径(路径前加r) flag: 打开方式: r----以只读的方式打开文件,文件的描述符放在文件的开头 rb----以二进制格式打开一个文件用于只读,文件的描述符放在文件的开头 r±—打开一个文件用于读写,文件的描述符放在文件的开头 w----打开一个文件只用于写入,如果该文件已经存在
分类: 其他 发布时间: 01-04 23:14 阅读次数: 0