20212112刘锦淑实验三报告
课程:《Python程序设计》
班级: 2121
姓名:刘锦淑
学号:20212112
实验教师:王志强
实验日期:2022年5月4日
必修/选修: 公选课
## 1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。
## 2. 实验过程及结果
客户端代码
服务器端代码
加密后客户端代码
# client.py
import socket
# HOST = 'localhost'
HOST = '192.168.10.191'
PORT = 5050
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
while True: #while里面只能有send和recieve
msg=input("请输入你想传达的信息,传入exit则退出\n")
if msg=="exit":
break
# client先发送消息再接收
s.sendall(msg.encode())
data = s.recv(1024)
print(f"他说 {data.decode()}")
加密后服务端代码
import socket
HOST = '' #主机
PORT = 5050 #端口
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
#bind(address), 传输层为AF_INET时address是(主机host,端口port)格式
s.listen(2)
conn, addr = s.accept()
#conn新的套接字对象,用于接收发送数据,
# addr客户端地址为元组(hostname, port)
with conn: #while里面只能有recieve和send
print('Connected by', addr)
while True: #server先接收再发送
data = conn.recv(1024)
print(f"{addr}说:{data.decode()}")
server_msg=input("请输入你想回复的内容,输入exit则退出:\n")
conn.sendall(server_msg.encode())
if server_msg=="exit":
break
码云链接https://gitee.com/besti-cs/hanyus-favorite-poof-poop.git
## 3. 实验过程中遇到的问题和解决过程
- 问题1:运行失败
- 问题1解决方案:尚未解决
- 问题2:加密不会
- 问题2解决方案:询问同学,查找资料
## 其他(感悟、思考等)
依旧有很多不会内容,还需继续努力。