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 指 ...
随机推荐
- 日常Bug排查-系统失去响应-Redis使用不当
日常Bug排查-系统失去响应-Redis使用不当 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 开发反应线上系统出现失去响 ...
- Git安装教程最新版本(国内gitee国外github)
Git安装教程最新版本(国内gitee国外github) 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 获取大师使用的typora主题: http://w ...
- PyCharm和JDK安装与配置(windows)
原创 PyCharm和JDK安装与配置(windows) mb5cd21e691f31a关注0人评论2024人阅读2020-03-20 21:08:41 一.PyCharm安装与配置 PyChar ...
- 【转载】打造基于 Centos 7.X 的 spice 服务器
[转载]打造基于 Centos 7.X 的 spice 服务器 https://segmentfault.com/a/1190000011991047
- 【IBM】netperf 与网络性能测量
netperf 与网络性能测量 汤凯2004 年 7 月 01 日发布 WeiboGoogle+用电子邮件发送本页面 2 在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对 ...
- bond0 配置ip不生效排查方法
今天巡检的时候,发现无法连接到服务器上面了,于是到机房连接到显示器查看: 1.先检查网卡,协议有没有问题. 2.远程链接的网卡名称是bond0,用ifconfig看看网卡配置,然后发现配置的 ...
- Linux中级之netfilter防火墙(iptables)
一.什么是防火墙? 防火墙其实就是一个隔离工具:工作于主机或者网络的边缘 对于进出本主机或者网络的报文根据事先定义好的网络规则做匹配检测 对于能够被规则所匹配的报文做出相应处理的组件(这个组件可以是硬 ...
- JavaEE 三层架构模式
什么是架构模式 要理解三层架构模式,我们得先搞清楚什么是架构模式.(这里说的架构模式是针对后端开发) 所谓架构就是系统最高级别的设计,一个系统特别复杂时才需要架构设计,如果只是开发一个很小程序,就谈不 ...
- 如何像如何像 NASA 顶级程序员一样编程 — 10 条重要原则
https://www.oschina.net/news/90499/nasa-programmer-rule?from=20171112#0-qzone-1-7898-d020d2d2a4e8d1a ...
- 服务器RAID配置
一.RAID介绍RAID是Redundent Array of Inexpensive Disks的缩写,直译为"廉价冗余磁盘阵列",也简称为"磁盘阵列".后来 ...