实验三 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. TypeScript Version 23 Design Patterns

    TypeScript Version 23 Design Patterns TypeScript 设计模式 https://refactoring.guru/design-patterns/types ...

  2. 正则表达式: javascript Unicode 中文字符 编码区间:\u4e00-\u9fa5

    正则表达式: javascript Unicode 中文字符  编码区间:\u4e00-\u9fa5 RegExp 对象 javascript Unicode 中文字符的 编码区间: \u4e00-\ ...

  3. CVS、SVN、Git、GitHub :版本控制系统

    1 1 1 Git常用命令 1 1 1 1 1 1 https://www.codecademy.com/learn/learn-git Learn Git You have now been int ...

  4. blogs & cnblogs

    blogs & cnblogs https://www.cnblogs.com/xgqfrms https://i.cnblogs.com/diaries https://i.cnblogs. ...

  5. website & blogs & about me & contact

    website & blogs & about me & contact demos https://davidwalsh.name/about-david-walsh htt ...

  6. React & Desktop App

    React & Desktop App https://proton-native.js.org/#/ https://github.com/kusti8/proton-native

  7. js 脏检测

    参考 基础知识 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. Flutter 创建透明的路由页面

    原文 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends St ...

  9. PriorityQueue使用介绍

    这玩意儿叫优先级队列,是一个类,继承了AbstractQueue类,实现了Serializable接口. jdk文档里是这么描述这玩意的: 基于优先级堆的无限优先级queue . 优先级队列的元素根据 ...

  10. Error Code: 1366. Incorrect DECIMAL value: '0' for column '' at row -1 0.266 sec;

    Reference: https://stackoverflow.com/questions/35037288/incorrect-decimal-integer-value-mysql     Er ...