20201317 鲁永欣《python程序设计》计算器设计实验三报告

20201317 鲁永欣《python程序设计》计算器设计实验二报告

实验二 计算器设计

(一)实验内容

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

(二)实验要求

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

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

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

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

课程:《Python程序设计》
班级: 2013
姓名: 鲁永欣
学号:20201317
实验教师:王志强
实验日期:2021年5月24日
必修/选修: 公选课

1.实验内容

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

2. 实验过程及结果

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

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

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

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

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

客户端:


服务端:

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

先初始化服务端,和客户端,连接相同的的IP地址和端口,建立服务器端和客户端的通信,设置服务器可以监听多个客户请求,通信的内容要存放在文件中,且在消息发送前后进行加解密,在客户端这里导入socket模块,通过s.bind()绑定地址(host,port)到套接字, 在AF_INET下,以元组(host,port)的形式表示地址。创建套接字,连接远端地址(s.connect()),连接后发送和接收数据(s.sendall(),s.recv()),传输完毕,关闭套接字(s.close())

先使用该代码进行简单的连接,确保可以通信之后,再在客户端创建一个文件lianxi.txt,将需要传输的消息写入文件,通信前将文件的内容读出,再进行传输。服务器端收到该消息后,创建一个文件xianshi.txt并通过utf-8将lianxi.txt中的信息写入文件中。

具体的显示结果如上图。

代码托管到码云:

https://gitee.com/lu-yongxin/pythonProject7/tree/master/python选修

3. 实验过程中遇到的问题和解决过程

- 问题1:socket这一章知识比较复杂,如何用这一章老师上课讲的知识完成实验。

- 问题1解决方案:通过课上的老师仔细讲解,和学习网络资源,一步步解决完成实验。

- 问题2:如何socket进行两个文件的“通信”,传输信息。

- 问题2解决方案:通过老师讲解,查找网络上的知识,我知道通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

- 问题3:如何通过服务端,客户端进行信息传输。

- 问题3:解决方案:通过查找网络资料,我知道了可以用utf-8进行信息传输。

- ...

其他(感悟、思考等)

在一步步解决问题的过程中,我知道如何通过一步步练习,不断结决问题,从而对代码,上课讲的各种知识进行练习。

posted @ 2021-05-30 10:01  鲁永欣  阅读(91)  评论(0编辑  收藏  举报