20201123 实验三《python程序设计》实验报告
20201123 2020-2021-2 《python程序设计》实验三报告
课程:《Python程序设计》
班级:2011
姓名:晏鹏捷
学号:20201123
实验教师:王志强
实验日期:2021年5月29日
必修/选修:公选课
一、实验内容
创建服务端和客户端
服务端在特定端口监听多个客户请求
客户端和服务端通过Socket套接字(TCP/UDP)进行通信
二、实验要求
1、创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序
2、要求包含文件的基本操作,例如打开和读写操作
3、要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中
4、程序代码托管到码云
三、实验过程
1、 TCP客户端
(1)创建套接字,连接远程地址
import socket#客户端的socket初始化
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 参数1:服务器之间网络通信;参数2:流式socket , for TCP
s.connect(('127.0.0.1', 8001))#连接,元组形式,(IP地址,端口)
(2)连接后发送、接收数据
str = input(“请输入要传输内容”)
s.sendall(str.encode())
data = s.recv(1024)
print(data.decode())
(3)传输完毕,关闭套接字
s.close()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('127.0.0.1', 8001))
2、TCP服务端
(1)创建套接字,绑定套接字到IP与端口
import socket#客户端的socket初始化
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 参数1:服务器之间网络通信;参数2:流式socket , for TCP
s.bind(('127.0.0.1', 8001))#连接,元组形式,(IP地址,端口)
(2)开始监听连接
s.listen()
(3)进入循环,接收客户端的连接请求
conn, address = s.accept()
(4)接收数据并发送给对方
data = conn.recv(1024)
print(data.decode())
conn.sendall((“服务器已经接收到数据:”+str(data.decode())).encode())
(5)传输完毕,关闭套接字
s.close()
3、循环通讯

4、发送、接收文件
(1)客户端
发送:

接收:

(2)服务端
传输:

接收:

5、加密、解密文件
加密:

解密:

四、遇到问题和解决过程
1、问题:代码太多太复杂,对于基础特别弱的我来说头疼不已
解决方案:一点一点慢慢研究,要有耐心,不能急躁
2、问题:找不到实验时的相关代码和截图了
解决方案:先弄懂具体的操作和步骤,之后有时间记得补上
五、感悟思考
1、这次实验真的好难,靠着同学的教学和讲解才琢磨出一点点,因为代码需要多次修改完善美化但是个人能力达不到,在实验过程中的确出现多次气馁和想放弃的心态,加上个人整理原因原本应该保存的代码和运行截图全部丢失,导致这次实验报告显得简陋匆忙,在今后自学的过程中,一定一定要吸取教训,舍得花时间,不要着急,慢慢修改。
2、从网上寻找的方法和代码有时可能超出现有能力范围,导致头脑混乱,容易晕,有些代码还需要自己修改才能运行的,也是考验个人基础知识的一种途径。所以在面临长难代码的debug时,以前会头疼不已,现在试着多冷静找问题了
六、 参考资料
https://blog.csdn.net/yangxiaodong88/article/details/80801278
https://blog.csdn.net/weixin_42930696/article/details/103722488?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
https://blog.csdn.net/wangtaotao_/article/details/97175108
https://blog.csdn.net/qq_34062683/article/details/78063035
https://viewer.mosoteach.cn/viewer?token=f81e9bfbde05e12df3bf8f3de97e9cbc&screenx=false&app_id=MTWEB&app_version=5.3.3&location=
https://www.mosoteach.cn/web/index.php?c=res&m=index&clazz_course_id=3618F6B1-9D43-4EF0-85E9-8342969DB202
20201123 实验三《python程序设计》实验报告的更多相关文章
- Python程序设计实验报告三:分支结构程序设计
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.5 指导老师 修宇 [实验目的 ...
- Python程序设计实验报告二:顺序结构程序设计(验证性实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩 日期 2020.3.22 指导老师 修宇 [实验 ...
- Python程序设计实验报告一:熟悉IDLE和在线编程平台
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩_____ 日期 2020.3.8 指导老师 ...
- Python程序设计实验报告四:循环结构程序设计(设计型实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.8 指导老师 修宇 [实验名称 ...
- 实验四 Android程序设计 实验报告
实验四 Android程序设计 实验报告 目录 代码托管地址 Android程序设计-1 Android程序设计-2 Android程序设计-3 Android程序设计-4 Android程序设计-5 ...
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
- 20155326 实验四 Android程序设计实验报告
20155326 实验四 Android程序设计实验报告 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3. ...
- 20165230 《Java程序设计》实验四 Android程序设计实验报告
20165230 <Java程序设计>实验四 Android程序设计实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导 ...
- 实验四 Android程序设计 实验报告 20162305李昱兴
实验四 Android程序设计 实验报告 20162305李昱兴 一.Android Studio的安装测试 1.有关该软件 Android Studio,是基于Itellij IDEA的一款流行的I ...
- PYTHON程序设计实验
Python程序设计实验报告一: 熟悉IDLE和在线编程平台 安徽工程大学 Python程序设计实验报告 班级 物流191 姓名 邹缕学号 3190505117成绩 ▁▁▁ 日期 2020.3.5 指 ...
随机推荐
- C++ primer plus读书笔记——第2章 开始学习C++
第2章 开始学习C++ 1. endl确保程序继续运行前刷新输出(将其立即显示在屏幕上),而使用"\n"不提供这样的保证,这意味着在有些系统中,有时可能在您输入信息后才会出现提示. ...
- 如何在Mac OS X中开启VIM语法高亮和显示行号
VIM (Wikipedia图) Vim 是一款相当给力的源自UNIX平台的命令行文本编辑器,不过不给力的是,Mac OS X下并没有诸多Linux发行版上VIM那些牛逼哄哄的神马代码高亮显示啊,自动 ...
- [re模块、json&pickle模块]
[re模块.json&pickle模块] re模块 什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则 ...
- Windows系统下consul的安装、启动、配置
阅读时长:3分钟 操作系统:Windows10 一.consul的安装 首先在consul.exe文件目录下的地址栏中输入cmd. 接着输入consul指令,敲击回车安装consul. 安装成功后会有 ...
- [刷题] 77 Combinations
要求 给出两个整数n和k,在n个数字中选出k个数字的所有组合 示例 n=4 , k=2 [ [ 1, 2 ] , [ 1, 3 ] , [ 1, 4 ] , [ 2, 3 ] , [ 2, 4 ] , ...
- Linux 根目录所在分区被脏数据占满
背景: 公司在做一个项目,大概功能就是一个通行闸机的人脸识别系统,要经过门禁的人注册了之后,系统就会存储一张原始的图片在服务器的数据文件夹里面,包括了永久的存储和一些访客注册临时存储.一天周五的时 ...
- IDEA 2019.2.4 破解安装教程
将下载的 IDEA 压缩包解压,找到 idealIU-2019.2.4.exe 安装文件,然后双击进行安装 安装完后不要运行,打开解压包中破解补丁与激活码文件夹,找到 jetbrains-agent. ...
- 在 Kubernetes 集群在线部署 KubeSphere
https://github.com/kubesphere/ks-installer/blob/master/README_zh.md https://kubesphere.com.cn/docs/i ...
- USB NCM介绍
1 功能概述 USB NCM,属于USB-IF定义的CDC(Communication Device Class)下的一个子类:Network Control Model,用于Host和Device ...
- 端到端TVM编译器(下)
端到端TVM编译器(下) 4.3 Tensorization DL工作负载具有很高的运算强度,通常可以分解为张量运算符,如矩阵乘法或一维卷积.这些自然分解导致了最近的添加张量计算原语.这些新的原语带来 ...