实验三 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

最新文章

  1. Oozie-4.0.0-cdh5.3.6搭建
  2. c++实现螺旋矩阵分析总结
  3. BZOJ2904
  4. C/C++错误分析errno,perror,strerror和GetLastError()函数返回的错误代码的意义
  5. 深入理解shared pool共享池之library cache的library cache pin系列三
  6. 多封装,少开放。强烈建议C++标准添加class之间的注入机制
  7. sheelエラー、オブジェクトを解析中にエラーが発生しました。
  8. 通过.NET实现后台自动发送Email功能的代码示例
  9. Oracle函数整理
  10. vue-swiper 基于Vue2.0开发 轻量、高性能轮播插件
  11. 在他机上还原DB2的备份
  12. 项目()已配置为使用IIS Web服务器,但此计算机上...
  13. 获取器操作都是针对数据而不是数据集的,要通过append()方法添加数据表不存在的字段
  14. RSA公钥加密,私钥解密的程序示例
  15. HttpComponents-Client学习
  16. 使用客户端等远程连接mysql数据库
  17. mac 无法打开xx ,因为无法确认开发者身份
  18. winform窗体this方式和handle(句柄)方式的区别
  19. meterpreter lhost设置
  20. HDU 1068 Girls and Boys(最大独立集)

热门文章

  1. Dijkstra求最短路 I(朴素算法)
  2. 普冉PY32系列(四) PY32F002/003/030的时钟设置
  3. Vue02 Node下载安装
  4. 亲测有效! Super PhotoCut Pro 超级抠图工具 V2.8.8 for mac 破解版
  5. UBUNTU安装代码阅读器Understand
  6. 记录一次vue部署docker步骤
  7. 原创ui自动化组件库-seliky
  8. 内网安全之:MS14-068 Kerberos 域用户提权漏洞
  9. EULAR2021_推文_大多数免疫抑制剂对辉瑞新冠疫苗效果影响小
  10. CCRD_TOC_2008年第11期