20193417 2019-2020-2 《Python程序设计》实验三报告
20193417 2019-2020-2 《Python程序设计》实验三报告
-
课程:《Python程序设计》
-
班级:1934
-
姓名:段恺宇
-
学号:20193417
-
实验教师:王志强
-
实验日期:2020年5月20日
-
1. 实验内容
-
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
2. 实验过程及结果
1. 过程
1.在vs code上建立服务器
2.利用vs code或IDLE建立客户端
3.运行客户端打开“发送.txt”文件,在“发送.txt"中输入信息内容即可
源代码:
服务器
import socket import os import base64 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('127.0.0.1', 8001)) str1 = input("输入文件名:") s.sendall(str1.encode()) os.chdir(r'E:\编程\Python\作业') file = open(str1,'r') message = file.read() message = message.encode('utf-8') encodemessage = base64.b32encode(message) s.sendall(encodemessage) file.close() data = s.recv(1024) print("接受信息:",data.decode()) s.sendall("收到".encode()) name = s.recv(1024) print("接受文件:",name.decode()) data = s.recv(1024) f = open("发送.txt","w") f.write(data.decode()) f.close() print("已加密发送") s.sendall("已接受,连接中断".encode()) s.close()
客户端
import socket import os import base64 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('127.0.0.1', 8001)) str1 = input("输入文件名:") s.sendall(str1.encode()) os.chdir(r'E:\编程\Python\作业') file = open(str1,'r') message = file.read() message = message.encode('utf-8') encodemessage = base64.b32encode(message) s.sendall(encodemessage) file.close() data = s.recv(1024) print("接受信息:",data.decode()) s.sendall("收到".encode()) name = s.recv(1024) print("接受文件:",name.decode()) data = s.recv(1024) f = open("发送.txt","w") f.write(data.decode()) f.close() print("已加密发送") s.sendall("已接受,连接中断".encode()) s.close()
3. 实验过程中遇到的问题和解决过程
-
问题1:如何使用加密方法?
-
问题1解决方案:百度找方案
-
其他(感悟、思考等)
对于数据处理、socket这一块,自己欠缺的方面还是有很多,需要多看网课资源尽量补上,虽然已经结课,但掌握这方面的内容还是对整体的综合能力有所提高。