学号 2019-2020-2 《Python程序设计》实验三报告

课程:《Python程序设计》

班级: 201933

姓名: 白晨阳

学号: 20193314

实验教师:王志强

实验日期:2020年5月30日

必修/选修: 公选课

1.实验内容

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

2.实验要求

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

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

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

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

3. 实验过程及结果

1.利用socket建立一个他的对象

2.写服务器端,用socket语句建立连接,然后接受消息,先用des解密,后用base64算法解密。

3.在服务器中输入存储的位置名称,之后创建文件,并通过解码的数据来写入就行

4.在客户端,打开文件读取相关内容,利用bs64和des加密,并把数据更改为8字节的并传输文件,就可以了

5.保存文件,关闭连接

首先是客户端



其次是服务器端

码云:https://gitee.com/besti-cs/bai20193314/blob/master/shiyan3—fa.py

https://gitee.com/besti-cs/bai20193314/blob/master/shiyan3—shou.py

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

  • 问题1:文件读取的时候会出现编码问题
  • 问题1解决方案:以二进制的方法读入
  • 问题2:加密时会出现格式不符合,有的要八字节,有的要字节类型,还有的要字符类型的。
  • 问题2解决方案:要学会充分利用好encode和decode,并利用一定的方法来时其格式正确,把握好二进制和字符间的关系
  • 问题3:会出现c语言不符合的问题
  • 问题3解决方案:可能是字节类型的不符合等问题,让他们的类型保持正确,就可以尽量避免这类问题
  • 问题4:解密时会出现字节型的问题,并且读不进文件
  • 问题4解决方案:把文件的读取模式改变或者decode
  • 问题5:读入文件会出现不存在此类文件
  • 问题5解决方案:有转义字符,去除其字符,输入的时候注意用上转义字符

其他(感悟、思考等)

在此次实验的过程中好多东西不太熟练,并且有关知识也不够,在python中,我们可以是利用别人的代码,,所以一定要把握好规则,这规则如果不对,不容易发现问题,并且python会利用其他语言的库,他的优点就可从中体现,但我们如果不能把握好,将会很麻烦,在以后的编程中一定要更加细致的发现问题才不会出现更多的错

20193314 白晨阳 实验三 Socket编程技术的更多相关文章

  1. 20184307 实验三 Socket编程技术

    实验三 Socket编程技术 学号 20184307 2019-2020-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级:1843 姓名:章森洋 ...

  2. [芯片] 3、接口技术·实验三·可编程并行接口8255A

    目录 一.实验目的和要求 二.实验原理与背景 2-1.8255A简介 2-2.8255A编程 三.实验具体的内容 3-1.8255方式0实验1 3-2.8255方式0实验2 3-3.8255方式1输出 ...

  3. HUST-计算机网络实验-socket编程

    随笔---HUST计网实验:socket编程 博主大三在读,第一次写随笔,水平有限,就当记录一下学习的过程,顺便面试前复习项目的时候看看. 实验要求: 编写一个 Web 服务器软件,要求如下: 基本要 ...

  4. TCP和UDP的Socket编程实验

    Linux Socket 函数库是从 Berkeley 大学开发的 BSD UNIX 系统中移植过来的.BSD Socket 接口是在众多 Unix 系统中被广泛支持的 TCP/IP 通信接口,Lin ...

  5. Python C/S架构,网络通信相关名词,socket编程

    主要内容: 一.  C/S架构 二. 网络通信的相关名词 三. socket编程 一. C/S架构和B\S架构概述 1. C/S架构: Client/Server(客户端/服务端)架构 描述: C/S ...

  6. Socket编程初探

    一.什么是Socket? 通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.在Internet上的主机一般运行了多个服务软件,同时提供几种服务.每种服务都打开一个S ...

  7. 201871030115-康旭 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 18卓越班 这个作业要求链接 实验三结对编程要求 我的课程学习目标 (1)体验软件项目开发中的两人合作,练习结对编程(Pair programming):(2)掌握Git ...

  8. 201871010130-周学铭 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 18卓越班 这个作业要求链接 实验三结对编程要求 我的课程学习目标 体验软件项目开发中的两人合作,练习结对编程(Pair programming).掌握Github协作开 ...

  9. C#网络编程技术微软Socket实战项目演练(三)

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第三部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...

  10. 2017-2018-2 20155228 《网络对抗技术》 实验三:MAL_免杀原理与实践

    2017-2018-2 20155228 <网络对抗技术> 实验三:MAL_免杀原理与实践 实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasi ...

随机推荐

  1. Webrtc audio

    整体理解 在 WebRTC 中,Call 是peer connection 的. 为 WebRTC Call 注入的 AudioState 来自于全局的 MediaEngine 的 VoiceEngi ...

  2. mysql修改密码报错:Your password does not satisfy the current policy requirements

    这是 mysql 初始化时,使用临时密码,修改自定义密码时,由于自定义密码比较简单,就出现了不符合密码策略的问题. 密码策略问题异常信息: ERROR 1819 (HY000): Your passw ...

  3. h5页面回到顶部

    1.锚点 <aname="top"></a> <ahref="#top"></a> 2.回到顶部 documen ...

  4. startActivity 新开一个Activity

    private void startActivity(Intent intent) { Context ctx = ApplicationController.getTopActivity(); if ...

  5. 转载安卓或苹果手机获取URL scheme方法

    首先,打开支付宝,来到需要抓取的小程序页面.此处以上海的随申码为例演示,打开随申办小程序,点击顶部的「随申码」按钮进入页面. 可以看出这个一个二级页面,如果想要使用 URL Scheme 一键访问,同 ...

  6. uniapp 图片文件流

    uni.request({ url: '*****', //仅为示例,并非真实接口地址. method: 'GET', responseType: 'arraybuffer', data: {}, h ...

  7. 为什么vue3要使用ref

    vue3中使用ref来创建响应式数据,让习惯了选项式API的我很不习惯.因为得使用xxx.value来读写响应式数据,没有vue2中直接使用this.xxx来读写简洁. vue3这样设计的原因是原生J ...

  8. mixup: BEYOND EMPIRICAL RISK MINIMIZATION概述

    参考简书,github 0.前言 相关资料: arxiv github 论文解读 论文基本信息: 领域:数据增强 发表时间:arxiv 2022(2022.5.1) 1.针对的问题 大型的深度神经网络 ...

  9. 实践:腾讯云COS备份本地数据以及异地备份

    在当前大数据时代背景下,数据在业务中占有不可低估的地位,数据备份已然成为了最后一道屏障. 腾讯云对象存储COS,提供数据备份.共享.大数据处理.线上数据托管一站式解决方案,成为了不少企业和个人用户备份 ...

  10. 【剑指Offer】【链表】合并两个排序的链表

    题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. A:若链表1为空,则合并后的链表头结点为pHead2:若链表2为空,则合并后的链表头结点为pHead ...