python_笔记_day19_socket(套接字)_Thread(多线程)_requests

复习day18

正则表达式:

1.正则符号

.   - 匹配任意字符
\w  - 匹配一个ASCII表中字母、数字、下划线,还可以匹配一个所有非ASCII表字符
\s  - 匹配一个空白字符
\d  - 匹配一个数字字符
\b  - 检测单词边界(检测\b所在的位置是否是单词边界)
^   - 检测是否是字符串开头
$   - 检测是否是字符串结尾
\W  - 匹配非数字、字母、下划线
\S  - 匹配非空白字符
\D  - 匹配非数字字符
\B  - 检测是否是非单词边界
[]   - 匹配一个中括号中的任意的一个字符
*,+,?,{N},{M,N},{M,},{,N} -- 贪婪
*?,+?,??,{N}?,{M,N}?,{M,}?,{,N}? -- 非贪婪
正则1|正则2
()分组

2.re模块

  • 完全匹配re.fullmatch()
  • 匹配字符串开头re.match()
  • 查找re.search()
  • 搜索re.findall() .re.finditer
  • 分割:re.split()
  • 替换:re.sub()

一 .socket(套接字)

1 .什么是socket

  • socket有叫套接字,指的就是网络通信的两端,分别是服务器和客户端
  • socket编程指的就是通过代码实现客户端和服务器之间的通信

2.服务器的实现

import socket

2.1创建套接字对象

family: ip类型 AF_INET -> ipv4
type : 传输协议 ,sock_STREAM -> TCP , SOCK_DGRAM -> UDP
s = socket.socket()

2.2 绑定ip地址和端口

IP用来区分互联网上的设备
端口用来区分一台计算机上的不同服务(应用)
值是0-65535,其中0-1024是著名端口
bind((IP地址,端口号))
s.bind(('10.7.190.74', 8080))

2.3启动服务器

listen(数量) - 这儿的数量指的是一次性能够处理的最大请求数
s.listen(255)
print('开始监听')

2.4让服务器一直处于运行状态

while True:
    '''
    # 2.5 等待客户端的请求
    - 程序运行到这个地方,会停下来,等待有客服端来连接服务器,才会接着往后运行
    '''
    connect,addr = s.accept()
    print(connect,addr)
    '''
    # 2.6 发送消息 
    send(数据)  -发送数据,数据是二进制数据
    '''
    msg ='我杨XX不服'
    connect.send(msg.encode(encoding='utf-8'))
    """
    # 2.7.接收消息    
    recv(字节数) -接收数据,并指定一次性接收的数据大小的最大值,返回接收的二进制数据
    """
    date = connect.recv(1024)
    print(date.decode(encoding='utf-8'))
    """
    # 7.关闭连接
    """
    connect.close()
    break

3. 创建客服端套接字

3.11.创建套接字对象

import socket
c = socket.socket()
'''
# 连接服务器
'''
c.connect(('10.7.190.170', 8080))
'''
# 3.接收消息
'''
date = c.recv(1024)
print(date.decode(encoding='utf-8'))
'''
# 4.发送消息
'''
msg = '我杨XX不服'
c.send(msg.encode(encoding='utf-8'))
c.close()
  • 例子:
  • server
import socket

s = socket.socket()
s.bind(('10.7.190.74', 8080))
s.listen(255)
msg1 = ['来了 老弟', '咋了?', '被人煮了!','我杨XX不服', '拜拜']

while True:
    c, addr = s.accept()
    print(addr,'连接成功')
    count = 0
    while True:
        msg = msg1[count]
        c.send(msg.encode())
        date = c.recv(1024).decode()
        if date == '拜拜':
            break
        print('客户端:', date)
        count += 1
  • client
import socket

c = socket.socket()
c.connect(('10.7.190.74', 8080))
while True:
    date = c.recv(1024)
    print(date.decode(encoding='utf-8'))
    msg = input('>>')
    c.send(msg.encode(encoding='utf-8'))

二. requests

  • 根据网络接口请求数据:通过第三方库requests提供的方法
import requests
r = requests.get('URLxxxxxx')
# print(r)
# 1获取字符串形式的数据结果
# print(r.text)
# 2 获取二进制数据
data = r.content
print(data)
# 3获取json数据
msg = r.json()
# print(msg['data'])
for x in msg['data']:
    print(x['name'],x['text'])

三.Thread(多线程)

'''

1 什么是进程

一个正在运行的程序就是一个进程.系统会给每个进程分配一个独立的内存区域,用来保存程序运行过程中产生的数据
当进程结束的时候,这个内存区域会自动销毁

2 什么是线程

进程想要执行任务,就必须要有线程.每个进程默认都有一个线程,这个线程叫主线程,其他的线程叫子线程
程序默认都是在主线程中执行的

  • 一个线程中执行多个任务 任务是串行执行的额(一个一个的按顺序执行)
  • 一个进程中如果有多个线程,多线程执行不同任务的时候是并行的(同时进行的)

3 Python中怎么使用多线程

  • python 通过内置的threading模块来提供多线程相关技术
  • 其中有一个Thread,这个类的对象就是线程对象
import threading
# import datetime
from datetime import date,time,datetime
from time import sleep

def download(film):
    print(threading.current_thread())
    print('开始下载:%s  time:%s'%(film,str(datetime.now())))
    sleep(5)
    print('%s下载完成   time:%s'%(film,str(datetime.now())))
'''
# 在主线程中下载两个电影:一个一个的下载,一个下载完才下载另一个.总耗时两个耗时的和
# download('大国崛起1')
# download('大国崛起2')
'''
'''
#1 直接创建线程类的对象
a.语法
线程对象 = threading.Thread(target=函数,args =参数) - 创建一个线程对象并且返回
b,说明
函数 - function类型的变量;这个函数的函数体就会在子线程中执行
参数 - 元祖:参数会传给target对应的函数
'''
t1 = threading.Thread(target=download,args=('大国崛起',))
t2 = threading.Thread(target=download,args=('小猪佩奇',))
t3 = threading.Thread(target=download,args=('舞出人生',))
'''
# 2.让线程开始执行任务
线程对象.start() - 开始执行子线程中的任务
'''
t1.start()
t2.start()
t3.start()
print(threading.current_thread())
'''
# 某个线程出现异常,是线程直接结束,进程不一定结束,所有线程都结束,进程才会结束
'''

3.创建线程子类

from threading import Thread ,current_thread
from time import sleep,time
from random import randint
'''
1)申明一个类继承自Thread
2)重写run方法,这个方法中的任务就是需要在子线程中执行的任务
3)创建当前类的对象,就是线程对象

'''

class DownloadThread(Thread):

    def __init__(self,film):
        super().__init__()
        self.film = film

    def run(self):
        print('%s开始下载'%self.film)
        time1= randint(5,10)
        sleep(time1)
        print('%s下载结束,总耗时%d秒'%(self.film,time1))
'''
# 2.创建线程对象
'''
t1 = DownloadThread('opencv')
t2 = DownloadThread('python')
'''
# 3.启动线程
线程对象调用start会自动在子线程中去调用run方法
直接用线程对象调用run方法,run方法会在主线程中执行
'''
start = time()
# t1.start()
# t2.start()

'''
4.join的用法
线程对象.join()  -- 程序执行到这个地方会停下来(线程会阻塞),直到线程对象
中的任务执行完成后才会执行后面的语句

'''
# t1.join()
# t2.join()
# end = time()
# print(end-start)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容