# 20222203 2023-2024-2 《Python程序设计》实验三报告

20222203 2024-04-22 23:02:59



课程:《Python程序设计》
班级: 2222
姓名: 刘鑫宇
学号:20222203
实验教师:王志强
实验日期:20224年4月22日
必修/选修: 公选课

## 1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信.

## 2. 实验过程及结果

  1. 1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;

(2)要求包含文件的基本操作,例如打开和读写操作。

(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
服务端代码:


 
  1. import socket

  2. from DesModule import des_encrypt,des_descrypt

  3. s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

  4. s.bind(("192.168.178.189",8001))

  5. s.listen()

  6. conn,address=s.accept()

  7. data = conn.recv(1024)

  8. print("接受返回信息:",data.decode())

  9. if __name__ == "__main__":

  10. ciphertext = des_encrypt("you are so handsome!","12345678")

  11. print("密文:",ciphertext)

  12. conn.sendall(ciphertext.encode())

  13. s.close()

  14.  

客服端代码:


 
  1. import socket

  2. from DesModule import des_descrypt

  3. import os

  4. if os.path.exists("secret"):

  5. file1=open("secret","r+")

  6. else:

  7. file1=open("secret","w+")

  8. file1.write("thanks!")

  9. file1.seek(0)

  10. cryptostring = file1.readline()

  11. s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

  12. s.connect(("192.168.178.189",8001))

  13. s.sendall(cryptostring.encode())

  14. data = s.recv(1024)

  15. print("密文:",data.decode())

  16. if __name__=="__main__":

  17. plaintext = des_descrypt(data.decode(),"12345678")

  18. print("明文:",plaintext)

  19. s.close()

  20.  

实验结果:

 

img

 

 

img


(4)程序代码托管到码云。

 

 

img

 

 

img

 

注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现。



## 3. 实验过程中遇到的问题和解决过程
问题1:服务端加密无法运行
问题1解决方案:下载python3.11的文件

## 其他(感悟、思考等)

xxx
xxx

## 参考资料

《Java程序设计与数据结构教程(第二版)》

《Java程序设计与数据结构教程(第二版)》学习指导

...全文
43 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110

社区成员

发帖
与我相关
我的任务
社区描述
人生苦短,我用Python!
python3.11 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧