20191202 实验三《Python程序设计》实验报告

实验三

课程:《Python程序设计》
班级: 1912
姓名: 王皓岩
学号:20191202
实验教师:王志强
实验日期:2021年5月31日
必修/选修: 公选课

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

## 2. 实验过程及结果

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

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

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

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

 

服务器端:

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"C:\Users\86187\Desktop")
file=open(str1,'r')
text=file.read()
text=text.encode('utf-8')
encode_text=base64.b32encode(text)
s.sendall(encode_text)
file.close()
data=s.recv(1024)
print("服务器信息:",data.decode())
s.sendall("收到".encode())
name=s.recv(1024)
print("服务器收到的信息:",data.decode())
s.sendall("收到".encode())
name=s.recv(1024)
print("文件:",name.decode())
data=s.recv(1024)
f=open("mi.txt","w")
f.write(data.decode())
f.close()
print("文件已加密")
s.sendall("已接受".encode())
s.close()
 
客户端:
import socket
import os
import base64
os.chdir(r"C:\Users\86187\Desktop")
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(('127.0.0.1',8001))
s.listen()
conn,address=s.accept()
name=conn.recv(1024)
print("文件:",name.decode())
data=conn.recv(1024)
f=open("ming.txt","w")
data1=base64.b32decode(data)
f.write(data1.decode())
f.close()
print("解密并保存")
conn.sendall("准备接收".encode())
data1=conn.recv(1024)
conn.sendall("ming.text","r")
data1=f.read()
conn.sendall(data1.encode())
f.close()
data1=conn.recv(1024)
print("信息",data1.decode())
s.close()
 
 

 

 

 

 

 

 

 


## 3. 实验过程中遇到的问题和解决过程
- 问题1:计算机积极拒绝
- 问题1解决方案:先打开服务端,后打开客户端



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

通过这次实验,我对文件操作和socket有了更深的了解


posted @ 2021-05-31 18:46  20191202王皓岩  阅读(51)  评论(0编辑  收藏  举报