实验三 Socket编程技术

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

课程:《Python程序设计》

班级:1843

姓名:章森洋

学号:20184307

实验教师:王志强

实验日期:2020年5月16日

必修/选修: 公选课

1.实验内容

此处填写实验的具体内容;

(一)实验内容

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

(二)实验要求

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

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

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

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

(三)实验报告

在规定时间前发表博客,标题“学号 实验三《Python程序设计》实验报告”

2. 实验过程及结果

此处填写实验的过程及结果

1.运用socket套接字来进行tcp的通信,同时需要传输的内容需要用文件的形式来读取,并且还要加密发送

2.服务端接收了文件后需要进行解密的处理,并且还要保存到新文件

3.这次实验中运用了struct库,并且客户端传输时不光有文件的内容,还有报头(包含文件名和数据大小,以字典的形式存储),服务端接收是以固定的长度进行接收,这样比原来直接用sendall方法更加能保证文件内容传输过程的准确性,可以防止黏包









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

  • 问题1:写程序的过程中还是会碰到一些语法问题,同时这次也学习了传输的新思想和新内容,那么在写的过程中就会出现各种各样的问题
  • 问题1解决方案:通过网上查找自学的方式去解决

其他(感悟、思考等)

这次的实验我用的方法是自学来的,改进了当文件数据过大时原来的1024可能不够用的情况,也是学习了一种socket套接字的新思想和新方法。程序语言无论c,java还是python都一样,更多的是自己去练和自己去学,这次我更加深有体会。

参考资料

20184307 实验三 Socket编程技术的更多相关文章

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

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

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

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

  3. TCP和UDP的Socket编程实验

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

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

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

  5. Socket编程初探

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

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

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

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

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

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

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

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

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

随机推荐

  1. API 授权 All In One

    API 授权 All In One 身份验证 授权类型 身份验证类型 继承认证 没有认证 API密钥 不记名令牌 基本认证 摘要授权 OAuth 1.0 OAuth 2.0 授权码 隐含的 密码凭证 ...

  2. URLSearchParams & Location & URL params parse

    URLSearchParams & Location & URL params parse URL params parse node.js env bug node.js & ...

  3. what's the print number means after called the setTimeout function in Chrome console?

    what's the print number means after called the setTimeout function in Chrome console? javascript fun ...

  4. Android Studio 4.x

    Android Studio 4.x https://developer.android.com/studio https://d.android.com/r/studio-ui/whats-new- ...

  5. Redux React & Online Video Tutorials

    Redux React & Online Video Tutorials https://scrimba.com/@xgqfrms https://scrimba.com/c/cEwvKNud ...

  6. iPad pro & 显示器

    iPad pro 显示器 iPad Pro 如何当做外接屏幕使用 XDisplay https://www.splashtop.com/wiredxdisplay https://play.googl ...

  7. C++算法代码——质数的和与积

    题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1682 题目描述 两个质数的和是S,它们的积最大是多少? 输入 输入文件名为prime ...

  8. hadoop的lzo支持

    目录 1.下载相关文件: 2.Configure LZO to build a shared library (required) and use a package-specific prefix ...

  9. 开发工具-scala处理json格式利器-json4s

    1.为什么是json4s 从json4s的官方描述 At this moment there are at least 6 json libraries for scala, not counting ...

  10. 从微信小程序到鸿蒙js开发【15】——JS调用Java

    鸿蒙入门指南,小白速来!0基础学习路线分享,高效学习方法,重点答疑解惑--->[课程入口] 目录:1.新建一个Service Ability2.完善代码逻辑3.JS端远程调用4.<从微信小 ...