20241116魏铼 《Python程序设计》实验三报告

课程:《Python程序设计》
班级:2411
姓名: 魏铼
学号:20241116
实验教师:王志强
实验日期:2025年4月15日
必修/选修: 公选课
一、实验内容
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。
二、实验过程
(一)实验分析
根据上述实验要求,结合老师给的初代代码,我设计升级版代码满足以下功能:

1.首先完成客户端与服务端连接工作,读入后进行加密,对传输文件保护。

2.客户端将数据发送给服务器,服务器接受数据。

3.服务器将数据进行解密,保存客户端的文件。

(二)实验代码
(1)首先编写实现简单本地通信
1.代码:
客户端
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 9999)
client_socket.connect(server_address)
while True:
message = input('请输入要发送给服务器的消息: ')
client_socket.send(message.encode('utf-8'))
data = client_socket.recv(1024).decode('utf-8')
if not data:
break
print('服务器说: {}'.format(data))
client_socket.close()
服务端:
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
address = ('localhost', 9999)
server_socket.bind(address)
server_socket.listen()
print('服务器正在监听 {}'.format(address))
client_socket, client_address = server_socket.accept()
print('接受来自 {} 的连接'.format(client_address))
while True:
data = client_socket.recv(1024).decode('utf-8')
if not data:
break
print('客户端说: {}'.format(data))
message = input('请输入要发送给客户端的消息: ')
client_socket.send(message.encode('utf-8'))
if input("是否要继续?Y/N")=="N":
break
client_socket.close()
server_socket.close()
import socket
2. 代码托管到码云

四、 实验过程中遇到的问题和解决过程
问题:运行客户端时发现代码一直报错,显示地址无效等问题
解决:在网上搜索解决方案并询问同学
五、实验感悟
因为上课没好好学所以在网上找了不少资料才做完,有所收获。

posted @ 2025-06-06 16:07  Futuree  阅读(17)  评论(0)    收藏  举报