第四模块:网络编程进阶&数据库开发 练习
Posted anzhangjun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四模块:网络编程进阶&数据库开发 练习相关的知识,希望对你有一定的参考价值。
练习题
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 multiprocessing import threading import socket ip_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 Thread msg_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
‘ % res) if __name__ = = ‘__main__‘ : t1 = Thread(target = talk) t2 = Thread(target = format_msg) t3 = Thread(target = save) t1.start() t2.start() t3.start() |
以上是关于第四模块:网络编程进阶&数据库开发 练习的主要内容,如果未能解决你的问题,请参考以下文章