1、基于多线程实现并发的套接字通信
客户端
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# _*_ coding: utf-8 _*_ from socket import *ip_port = (‘127.0.0.1‘,9999)client = socket(AF_INET,SOCK_STREAM)client.connect(ip_port)while True: cmd = input(">>>").strip() if not cmd: continue client.send(cmd.encode(‘utf-8‘)) data = client.recv(1024) print(data.decode(‘utf-8‘))client.close() |
服务端
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import multiprocessingimport threadingimport socketip_port = (‘127.0.0.1‘,9999)s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind(ip_port)s.listen(5)def action(conn): while True: data = conn.recv(1024) print(data) conn.send(data.upper())if __name__ == ‘__main__‘: while True: conn,addr = s.accept() p = threading.Thread(target=action,args=(conn,)) p.start() |
2、编写一个简单的文本处理工具,具备三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# _*_ coding: utf-8 _*_ # 练习二:三个任务,一个接收用户输入,一个将用户输入的内容格式# 化成大写,一个将格式化后的结果存入文件from threading import Threadmsg_l = []format_l = []def talk(): while True: msg = input(">>>").strip() if not msg: break msg_l.append(msg)def format_msg(): while True: if msg_l: res = msg_l.pop() format_l.append(res.upper())def save(): while True: if format_l: with open(‘db.txt‘,‘a‘,encoding=‘utf-8‘) as f: res = format_l.pop() f.write(‘%s\n‘%res)if __name__ == ‘__main__‘: t1 = Thread(target=talk) t2 = Thread(target=format_msg) t3 = Thread(target=save) t1.start() t2.start() t3.start() |
原文:https://www.cnblogs.com/anzhangjun/p/9835798.html