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

课程:《Python程序设计》
班级: 2042
姓名: 施鸽
学号:20204218
实验教师:王志强
实验日期:2020年5月3日
必修/选修: 公选课

 

(一)实验内容

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

 

(二)实验要求

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

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

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

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

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

 

(三)实验过程及结果

1.创建服务器和客户端,进行基本的通信内容传输;

①服务器:

过程:首先我选择的是TCP(面向连接),我使用了通用地址‘127.0.0.1’,换了一个端口号。然后创建socket对象→调用socket构造函数→与端口绑定(bind)→对端口进行监听(listen)→调用accept阻塞→等待客户端连接。

②客户端:

过程:进行socket初始化,连接服务器,发送数据请求。

 

③socket通信演示:

 

 2.进行加密通信,使用base64(此方法别人拿到密文亦可以转换为明文,较为不安全)

①改写服务端代码

② 改写客户端代码

 ③运行

 

⑤代码托管到码云


(四) 实验过程中遇到的问题和解决过程
问题1:运行一直出现‘“目标计算机积极拒绝,无法连接”的状况
问题1解决方案:尝试了修改ipv4地址和端口号,显然没有用。在同学的提示下,先运行服务器,再运行客户端,问题得以解决。
问题2:输入文件名时“文件”出现File Not Found Error
问题2解决方案:文件名需要加后缀.txt

 

(五)感悟and思考

使用socket进行通信,确实比之前所做的实验要难很多。在输入本地IP地址和端口之后,并无法进行通信,多次调整之后也没懂问题出现在哪里,后面索性换了通用地址。对于加密的知识之前并未掌握,所以花了一定的时间去了解几种加密方法,包括base64,对称加密、DES加密等。通过这次实验,我更加感受到了我未利用的Python开发空间的广阔。

posted @ 2022-05-04 23:03  不知水桥  阅读(21)  评论(0编辑  收藏  举报