20221421李旻奇 2022-2023 《Python程序设计》实验三socket

m0_73947489 2023-04-19 21:36:41

学号 2022-2023-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2214
姓名: 李旻奇
学号:20221421
实验教师:王志强
实验日期:2022年4月13日
必修/选修: 公选课

1.实验内容
(一)实验内容

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

(二)实验要求

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

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

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

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

  1. 实验过程及结果
    创建服务端和客户端,选择一个通信端口
    服务端:

代码

import socket
import base64

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(("127.0.0.1",8888))
s.listen()
conn,address=s.accept()
data=conn.recv(1024)
f=open("Recieve.txt","w")
data1=base64.b32decode(data)
f.write(data1.decode())
f.close()
print(" 计算机接收了加密文件",data)
conn.sendall("Receive sucessfully".encode())
data1=conn.recv(1024)
print(" 来自客户端的信息",data1.decode())
s.close()
客户端

代码

import socket
import base64

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("127.0.0.1",8888))
text=input("传输内容:")
file=open('send.txt','a+')
file.write(text)
print("内容已写入文件")
text=text.encode('utf-8')
encode_text=base64.b32decode(text)
s.sendall(encode_text)
file.close()
data=s.recv(1024)
print("客户端的消息:",data.decode())
s.sendall("已收到".encode())
print(" 文件内容已加密传输")
s.sendall("已接收:".encode())
s.close()
加密代码

def des_encrypt(s, KEY):
secret_key = KEY
iv = secret_key
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
en = k.encrypt(s, padmode=PAD_PKCS5)
return binascii.b2a_hex(en).decode()
def des_descrypt(s, KEY):
secret_key = KEY
iv = secret_key
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
return de.decode()
if name == "main":
ciphertext = des_encrypt("hello, world!", "12345678")
print("密文:",ciphertext)
plaintext = des_descrypt(ciphertext, "12345678")
print("解密后的明文:", plaintext)

img

img

img


https://img-community.csdnimg.cn/images/9499935b2b16425d8aee1988d91c2877.png
https://img-community.csdnimg.cn/images/cf8630ff6b1e4f7ebc85c866e51f86c1.png

  1. 实验过程中遇到的问题和解决过程
    问题1:听不懂
    问题1解决方案:上网查

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

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

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

144

社区成员

发帖
与我相关
我的任务
社区描述
开展Python教学和技术交流
python 高校 北京·丰台区
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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