粘包问题TCP协议在传输过程中会出现数据粘包问题讲一下TCP和UDP的区别,都是传数据的协议,没有好坏之说,只是不同的应用需求可能会更好选择哪一个协议TCP:适合传输数量大,需要建立连接,会出现粘包问题,粘包问题可以解决,确定传入的长度,接收同样长度就可以保证一次性传输完UDP:适合传输数据量小,没有粘包,不需要连接,一次性传输,下一次就是新的数据,弊端就是数据丢失,不安全QQ是用什么协议呢?按理应该可以用UDP协议,但是实际用的是TCP协议,这是历史遗留
系统 2019-09-27 17:53:03 1974
1Python开发环境搭建1.1Python版本介绍Python目前官方运营维护的版本分为2.x版本和3.x版本。2.x版本相对来说,稳定性更高,兼容的主流第三方扩展库更多,商用开发首选;3.x架构设计更完善,性能更好,一些发展前端的第三方扩展库以3.x版本首选兼容和维护。因为2.x版本和3.x版本存在架构上的差异,所以互不兼容,在开发选择版本时需要注意。目前2.x版本的最新版本是2.7.14;3.x版本的最新版本是3.6.3。1.2Python下载与安装
系统 2019-09-27 17:52:53 1974
前言上项目的时候,遇见一次需求,需要把在线的其中一个collection里面的数据迁移到另外一个collection下,于是就百度了看到好多文章,其中大部分都是使用导入的方法,没有找到在线数据的迁移方法。于是写了python脚本,分享出来。思路:collection数据量比较大,所以一次性操作所有数据太大,于是分段执行操作。先分段按1000条数据量进行查询,处理成json数据把处理后的json数据发送到目的collection上即可实现:一、使用http的
系统 2019-09-27 17:52:33 1974
工厂模式,类似实际的制造车间中,根据订单的需求来生成/创建某个实例。1.应用场景:需要创建的实例不确定,由输入的数据决定;2.实现方法:实现一个独立的类,接收传入的需要创建实例的名称,在该类中实现创建某个具体实例。3.代码:#coding:utf-8classPerson(object):def__init__(self):self.name=Noneself.gender=NonedefgetName(self):returnself.namedefge
系统 2019-09-27 17:52:30 1974
Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在Python中使用SSH,则需要先安装模块顺序是:pycrypto->ecdsa->paramiko1、安装pyCrypto安装这个比较麻烦,需要本地编译,要装vs或gcc还有一堆配置,还不一定能编译成功。(网上能搜到安装步骤)建议直接下载已编译版:http://www.voidspace.org.uk/p
系统 2019-09-27 17:52:27 1974
进程、线程和协程进程的定义:进程,是计算机中已运行程序的实体。程序本身只是指令、数据及其组织形式的描述,进程才是程序的真正运行实例。线程的定义:操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。进程和线程的关系:一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。CPU的最小调度单元是线程不是进程,所以单进程多线程也可以利用多核CPU.协程的定义:协程通过在线程中实现调度,避免了陷
系统 2019-09-27 17:52:14 1974
示例标准线程多进程,生产者/消费者示例:Worker越多,问题越大复制代码代码如下:#-*-coding:utf8-*-importosimporttimeimportQueueimportthreadingfromPILimportImagedefcreate_thumbnail(filename,size=(128,128)):try:fp,fmt=filename.rsplit('.',1)im=Image.open(filename)im.thum
系统 2019-09-27 17:52:06 1974
Python之父再发文:构建一个PEG解析器image花下猫语:Python之父在Medium上开了博客,现在写了两篇文章,本文是第二篇的译文。前一篇的译文在此,宣布了将要用PEG解析器来替换当前的pgen解析器。本文主要介绍了构建一个PEG解析器的大体思路,并介绍了一些基本的语法规则。根据Python之父的描述,这个PEG解析器还是一个很笼统的实验品,而他也预告了,将会在以后的系列文章中丰富这个解析器。阅读这篇文章就像在读一篇教程,虽然很难看懂,但是感觉
系统 2019-09-27 17:51:22 1974
子曰:“工欲善其事,必先利其器。”学习Python就需要有编译Python程序的软件,一般情况下,我们选择在Python官网下载对应版本的Python然后用记事本编写,再在终端进行编译运行即可,但是对于我这样懒的小白,我喜欢装一些方便的软件来辅助我编写程序。在学习Java时,正常情况选择安装JDK然后配置环境变量后,用记事本编写程序再在终端编译运行即可,而我一般选择安装JDK+MyEclipse。将Python和Java进行类比的话,在Python中使用P
系统 2019-09-27 17:51:16 1974
本文原创并首发于公众号【Python猫】,未经授权,请勿转载。原文地址:https://mp.weixin.qq.com/s/XzCqoCvcpFJt4A-E4WMqaA(一)最近,我突然想到一个问题:相比其它语言,有哪些概念或习惯叫法是Python特有的?在朋友圈提出这个问题后,我得到最多的回复是——Pythonic。这个回复一点都不意外,名字中自带Python的,当然是特有的啦,与它相似的,还有Pythonista。这两个词是啥意思呢?Python圈内
系统 2019-09-27 17:50:45 1974