非阻塞IO(non-blockingIO)Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blockingsocket执行读操作时,流程是这个样子:从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。从用户进程角度讲,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。用户进程判断结果是一个error时,它就知道
系统 2019-09-27 17:53:07 1890
粘包问题TCP协议在传输过程中会出现数据粘包问题讲一下TCP和UDP的区别,都是传数据的协议,没有好坏之说,只是不同的应用需求可能会更好选择哪一个协议TCP:适合传输数量大,需要建立连接,会出现粘包问题,粘包问题可以解决,确定传入的长度,接收同样长度就可以保证一次性传输完UDP:适合传输数据量小,没有粘包,不需要连接,一次性传输,下一次就是新的数据,弊端就是数据丢失,不安全QQ是用什么协议呢?按理应该可以用UDP协议,但是实际用的是TCP协议,这是历史遗留
系统 2019-09-27 17:53:03 1890
python2中的urllib2改为python3中的urllib.request四种方式对比:python2的get#coding=utf-8importurllibimporturllib2word=urllib.urlencode({"wd":"百度"})url='http://www.baidu.com/s'+'?'+wordrequest=urllib2.Request(url)printurllib2.urlopen(request).read
系统 2019-09-27 17:52:45 1890
工厂模式,类似实际的制造车间中,根据订单的需求来生成/创建某个实例。1.应用场景:需要创建的实例不确定,由输入的数据决定;2.实现方法:实现一个独立的类,接收传入的需要创建实例的名称,在该类中实现创建某个具体实例。3.代码:#coding:utf-8classPerson(object):def__init__(self):self.name=Noneself.gender=NonedefgetName(self):returnself.namedefge
系统 2019-09-27 17:52:30 1890
简介前边几篇介绍了Monkey以及Monkey的事件,今天就给小伙伴们介绍和分享一下Monkey的参数。首先我们看一下这幅图来大致了解一下:1、Monkey命令基本参数介绍-p<允许的包名列表>用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果丌指定包,monkey将允许系统启动设备中的所有app。指定一个包:adbshellmonkey-pcom.shjt.map100指定多个包:adbshellmonkey-pfish
系统 2019-09-27 17:52:06 1890
这篇文章主要介绍了PythonDjango简单分页的实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下models.py:fromdjango.dbimportmodelsclassBook(models.Model):title=models.CharField(max_length=32)def__str__(self):returnself.titleclassMeta:db_table="
系统 2019-09-27 17:52:00 1890
个人想到的解决方法有两种,一种是.replace('old','new')第一个参数是需要换掉的内容比如空格,第二个是替换成的内容,可以把字符串中的空格全部替换掉.第二种方法是像这样str_1_data='abc'str_2_list=str_1_data.split()str_1=''foriinrange(len(str_2_list)):#这里可以直接用str_1.join(str2_list)str_1+=str_2_list[i]print(st
系统 2019-09-27 17:51:45 1890
以前在windows下一直用的idel带的功能调试python程序,在linux下没调试过。(很多时候只是print)就从网上查找一下~方法:复制代码代码如下:python-mpdba.pya.py是python文件。(Pdb)模式下的常用命令:q退出debugh即help,打印所有可以命令hw打印命令w的含意n执行当前行直到到达下一行或直到它返回s执行当前行,一有可能就停止(比如当前行有一个函数调用)。它和n(next)的区别是当前行中有函数调用时s(s
系统 2019-09-27 17:51:05 1890
一、变量赋值及命名规则①声明一个变量及赋值1#!/usr/bin/envpython2#-*-coding:utf-8-*-3#_author_soloLi4name1="solo"5name2=name16print(name1,name2)7name1="hehe"8print(name1,name2)#name1的值为hehe,name2的值为solo②变量命名的规则11、变量名只能是字母、数字或下划线的任意组合22、变量名的第一个字符不能是数字33
系统 2019-09-27 17:50:38 1890
前天在微信上遇到一个小伙伴问我一个关于Sublimetext配置Python解释器的问题,可能是初学者,对这方面还不是很懂,想使用快捷键但是徒劳一场,因为缺少Python解释器,直接按下快捷键Ctrl+B是不会得到想要的结果的。鉴于此,如果有小伙伴想使用Sublime跑Python程序的话,那么配置Python解释器是必不可少的一步,这里小编整理这篇手把手教程,希望为后来者铺砖引路。下面是详细教程:1、首先打开Sublime,如下图所示,然后选择“Pref
系统 2019-09-27 17:50:11 1890