一:正则表达式

闭包操作符
  • | 等同于 or   exp:a|b|c          
  • . 匹配任意一个字符 (若匹配本字符,需转义使用 \.   不能匹配换行符\n及空字符串)   
  • (^:匹配首部【\b:匹配首部 \B:匹配任意位置】  $:匹配尾部)
  • [abc]:匹配中括号内任意字符  ^置于首位表示不取该字符
  • -连接:表字符范围  exp: A-Z   0-9   
  • *:表示0次或多次  +:表示一次或多次  ?: 表示0次或1次
  • \d:表十进制数字匹配    \w:表字符数字的字符集匹配   \s:表示空格字符匹配    (大写表取反)
  • (?...)表示对匹配字符串进行筛选
 
re.I :使匹配对大小写不敏感
r:Python中字符串前面加上 r 表示原生字符串(rawstring)原因:阿斯克码值和特殊字符存在冲突
 
#match:从起始部分对字符串进行匹配,匹配失败,抛出Attribute Error异常 (pattern,string)
#search:从字符串任一位置进行匹配
#findall:返回所有符合匹配的字段
#sub/subn:用字符串替换匹配的字段,subn返回匹配个数
group():返回匹配的字段、groups():以数组形式返回匹配字段
 

二:网络编程

套接字:通信端点  (基于文件【单机】和基于网络的【联机】)TCP:有连接(电话)  UDP:无连接(邮寄)
socketServer:处理socket请求的多线程
套接字设置阻塞模式和非阻塞模式:
阻塞模式缺点:套接字线程较多时,通信较困难,扩展性较差
非阻塞模式缺点:需要处理返回的阻塞错误    优点:多个连接,数据传送不平均,时间不定
发送和接收数据时,需要进行加密解密
 #server.py
1 from socket import *
from time import ctime HOST = '' #接收所有地址
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST,PORT) tcpSerSock= socket(AF_INET,SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5) #最大连接数 while True:
print('waiting for connection')
tcpCliSock,addr = tcpSerSock.accept()
print('...connected from ',addr)
while True:
#接收数据解密
data = tcpCliSock.recv(BUFSIZE).decode()
if not data:
break
#发送数据加密
tcpCliSock.send(('[%s] %s' % (ctime(),data)).encode())
tcpCliSock.close()
tcpSerSock.close()
#client.py
1 from socket import *
HOST = '127.0.0.1'
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST,PORT)
tcpCliSock = socket(AF_INET,SOCK_STREAM)
tcpCliSock.connect(ADDR) while True:
data = input('>')
if not data:
break
#传送数据加密
tcpCliSock.send(data.encode())
#接收数据解密
data = tcpCliSock.recv(BUFSIZE).decode()
if not data:
break
print(data)
tcpCliSock.close()

三:客户端编程

FTP:文件传输协议  (允许匿名用户登录) 底层使用两个套接字进行通信,包括命令端口和数据端口
UseNet:全球电子公告板,基于UUCP协议传输(Unix——Unix)
电子邮件系统
MTA:消息传输代理,在交换主机上运行的服务器进程。为实现传送目的,需要确定两个目的,
1.如何找到对接主机的MTA       由域名服务来查找目的域名
2.如何进行通信                         统一SMTP(简单邮件传输)协议,通过MTS(消息传输系统)进行通信
POP\IMAP:客户端和服务端访问协议

最新文章

  1. 在Linux Mint上安装node.js和npm
  2. jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——编译原理
  3. 程序设计入门——C语言 第8周编程练习 2GPS数据处理(6分)
  4. Orcle学习(一)
  5. bootstrap精简教程
  6. java.lang.NoClassDefFoundError: javax/transaction/UserTransaction
  7. Java之有病的policy配置
  8. logstash ArgumentError: comparison of String with 5 failed
  9. oracle pl/sql 包
  10. Java IO(1)基础知识——字节与字符
  11. 进击Node.js基础(一)
  12. CodeSmith 二、多模板按目录树批量自动生成代码
  13. codeblocks(其它软件)修改后缀文件的打开默认方式
  14. springMVC实现登陆
  15. Spring restful
  16. 斐波那契数列中获取第n个数据值
  17. BZOJ.2208.[JSOI2010]连通数(bitset Tarjan 拓扑)
  18. .Net Framework4.5.2 源码命名空间简析
  19. Alibaba Java诊断工具Arthas之快速安装和简单使用
  20. 面试必会函数源代码 strcpy/memcpy/atoi/kmp/quicksort

热门文章

  1. 阅读之web应用安全
  2. 小猿圈-IT自学人的小圈子 https://book.apeland.cn/details/54/
  3. 利用J.U.C中的lock和condition实现生产者消费者模式
  4. Python数学常量
  5. dataGridView添加ComboBox 每行绑定不同的集合,显示默认值
  6. Killer Problem (UVA 11898 )
  7. Java线程之Callable、Future
  8. SQL语句中 NOT IN 子句的“正确打开方式”
  9. P1598 垂直柱状图
  10. 认识weblogic的各个机构