20203412马畅若 实验三 《Python程序设计》Socket编程技术实验报告
实验三 Socket编程技术
课程:《Python程序设计》
班级: 2034
姓名: 马畅若
学号:20203412
实验教师:王志强
实验日期:2020年5月30日
必修/选修: 公选课
##1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
实验要求
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。
##2.实验过程及结果
创建服务器端和客户端,先在客户端中导入socket模块,创建套接字,连接远端地址(s.connect()),连接后发送和接收数据(s.sendall(),s.recv()),传输完毕,最后关闭套接字(s.close())
再在服务器端导入socket模块,创建套接字,绑定套接字到本地IP与端口(s.bind()),开始监听连接(s.listen()),进入循环,不断接受客户端的连接请求(s.accept()),然后接收传来的数据,并发送给对方数据(s.recv(),s.sendall()),传输完毕后,关闭套接字(s.close())
解密:使用base64进行解密。
将该模块导入,在客户端进行通信前对消息使用base64.b32encode()函数加密后再进行传输,在服务器端再使用base64.b32decode()函数对收到的消息进行解密,解密后再保存至文件中。
p.s.:需要初始化服务器,令服务器连接本地IP地址和端口,建立服务器端和客户端的通信;
记得关闭防火墙。
客户端
服务器端

实验结果

码云链接
https://gitee.com/ma-changruo/py.git
## 3. 实验过程中遇到的问题和解决过程
- 问题1:在客户端打开文件时无法打开

- 问题1解决方案:通过百度和在CSDN上查找资料,试了许多给出的情况样例,最终换了一个端口。
- 问题2:无法找到指定文件。

- 问题2解决方案:同样也是在百度上搜索经验分享,最终找到了解决方案。
## 4.感悟思考
这次实验是目前自己用时最久的实验,因为在编码过程中仍然存在许多的语句结构不太熟悉,用了很长的时间去回看老师给出的代码与网上传出的代码,希望能够编出一个实用的代码。
在调试计算机积极拒绝的问题上也用了很久的时间,其间还遇到了系统找不到指定文件的问题,结果发现是在pycharm的编译环境中位置的移动。
一个又一个错误确实在调试过程中使人绝望,但是当查阅各种资料后解决问题时,确实让人感到无比的成就感。
##5. 参考资料
https://m.php.cn/article/192504.html
https://blog.csdn.net/thj_1995/article/details/88219488
20203412马畅若 实验三 《Python程序设计》Socket编程技术实验报告的更多相关文章
- 20182332 实验四《Java Socket编程 》实验报告
20182332 实验肆<数据结构与面向对象程序设计>实验报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 盛国榕 学号:20182332 实验教师:王志强 实验日 ...
- 20184307 实验三 Socket编程技术
实验三 Socket编程技术 学号 20184307 2019-2020-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级:1843 姓名:章森洋 ...
- 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...
- 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...
- 20155207王雪纯 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20155207王雪纯 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...
- 2016-2017-2 20155339 《Java面向对象程序设计》实验三敏捷开发与XP实践实验报告
2016-2017-2 20155339 <Java面向对象程序设计>实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验内容 一.在IDEA中使用工具(Co ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验五 《网络安全与编程》 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验五 <网络安全与编程> 实验报告 一.实验报告封面 课程:Java程序设计 班级:1753班 姓名:盛 ...
- 转:Python 的 Socket 编程教程
这是用来快速学习 Python Socket 套接字编程的指南和教程.Python 的 Socket 编程跟 C 语言很像. Python 官方关于 Socket 的函数请看 http://docs. ...
- Python 3 socket 编程
Python 3 socket编程 一 客户端/服务器架构 互联网中处处是C/S架构 1.C/S结构,即Client/Server(客户端/服务器)结构 2.在互联网中处处可见c/s架构 比如说浏览器 ...
- python之socket编程(一)
socket之前我们先来熟悉回忆几个知识点. OSI七层模型 OSI(Open System Interconnection)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标 ...
随机推荐
- MySQL-数据库、MySQL
1.存取数据的演变史 1.文本文件: 文件路径不固定(导致代码兼容性下降) 数据格式不统一:(max|123, max_123) 2.软件开发目录规范: 1.规定了数据应该保存在db目录下>&g ...
- JZOJ 3213. 【SDOI2013】直径
题目 思路 树的直径很好求,两遍 \(dfs\),记下两个端点 然后很显然所有直径经过的边必然在我们求出的这条直线上 那么我们只要判断一下一条直径上的边是不是答案 假设当前边为 \(i\) 那么把 \ ...
- 两台linux服务器互相自动备份
转载:csdn https://blog.csdn.net/gjwgjw1111/article/details/103515031
- DBeaver连接clickhouse无法下载驱动的情况
最近遇到dbeaver 连接clickhouse的时候提示下载驱动失败. 在网上找了些方法也不行,其中包括默认下载.配置阿里云的Maven. 最后在网上找到一个驱动包,自己手动添加即可.把下载地址分享 ...
- CentOS 搭建 samba 服务器并通过 Windows 访问
第一步 下载安装 samba.samba-client sudo yum -y install samba samba-client 终端提示安装完成 第二步 创建共享文件夹,这个文件夹到时候可以通过 ...
- PostgreSQL 打印详细错误调用栈 - pg_backtrace
一.用法 create extension pg_backtrace; select pg_backtrace_init(); 二.示例 postgres=# select count(*)/0.0 ...
- 在 Ubuntu 22 的基础上进行 Hadoop 伪分布式(HDFS)的搭建
一.使用VMware安装Ubuntu虚拟机 在Linux系统各个发行版中,Ubuntu系统在服务端和桌面端使用占比最高,网络上资料最是齐全,所以这里使用Ubuntu LTS. 整体的系统安装文件较大( ...
- eslint规范在项目中的实现——vue项目举例
先附上参考链接: https://juejin.cn/post/7068573328914513928 https://juejin.cn/post/6857135010882387981 https ...
- vue 使用路由component: () =>import (‘ ‘)报错解决办法
今天帮朋友调代码的时候,在人家的mac上面,项目没有任何错误,到我这里就出现 component: () =>import (' ')加载路由错误. 发现是import处报错, import 属 ...
- Bugku-ez_misc[wp]
题目描述 1.拿到一份abc.rar文件,里面有一个加密call.png (1)通过file . binwalk . 伪加密一顿小输出都不行,于是放进16进制编辑器查看: 文件头不对! (2)修改为 ...