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

课程:《Python程序设计》
实验日期:2020年5月17日
必修/选修: 公选课

1.实验内容

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

2.实验要求

(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。

3. 实验过程及结果

条件:在pycharm中导入socket模块
第一步:先编写出客户端及服务器使其能完成简单的交流通信功能(建议先编写客户端,运用网络调试助手充当服务器,实现简单的通信功能后在编写客户端(网络调试助手下载链接:http://soft.onlinedown.net/soft/971066.htm))

第二步:利用while……True 实现客户端与服务器之间多次传输信息
注意:要先启动服务器,再启动客户端。
下图是实现多次传输功能时服务器与客户端的运行界面:

服务器

客户端

第三步:实现传输文件功能:传输文件实际上是服务器将能找到的文件以'rb'模式打开,读出文件内容,然后直接就可以传输(因为这里直接就是二进制格式)

这里我用两个文件夹,分别存放客户端与服务器的内容

这是服务器端

这是客户端

最终效果

服务器

客户端

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

  • 问题1:在第一步的时候解码的过程中报错'utf-8' codec can't decode byte 0xd2 in position 0: invalid continuation byte
  • 问题1解决方案:解决过程参考了文章:https://www.cnblogs.com/huangchenggener/p/10983812.html 由于于发送的消息有中文,应该使用gbk解码,decode()的默认方式为utf-8
posted @ 2020-05-17 13:12  倔强jujiang  阅读(199)  评论(0编辑  收藏  举报