当前位置:Gxlcms > 数据库问题 > 第四模块:网络编程进阶&数据库开发 练习

第四模块:网络编程进阶&数据库开发 练习

时间:2021-07-01 10:21:17 帮助过:14人阅读

练习题

1、基于多线程实现并发的套接字通信

客户端

+ View Code?
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()

  

服务端

+ View Code?
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、编写一个简单的文本处理工具,具备三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件

+ View Code?
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\n‘%res)   if __name__ == ‘__main__‘:     t1 = Thread(target=talk)     t2 = Thread(target=format_msg)     t3 = Thread(target=save)       t1.start()     t2.start()     t3.start()

第四模块:网络编程进阶&数据库开发 练习

标签:练习   write   习题   func   from   send   ring   open   plain   

人气教程排行