20214302单宇航 实验三《Python程序设计》实验报告

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

课程:《Python程序设计》
班级: 2143
姓名: 单宇航
学号:20214302
实验教师:王志强
实验日期:2022年4月30日
必修/选修: 公选课

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

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

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

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

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



## 2. 实验过程及结果
本次实验我是与20214319薛曦晨同学一完成的本次实验,我为服务端,薛同学为客户端。

一、代码的学习与了解

通过学习和了解,加上网上资料的查阅,下面的流程图直接又简洁,第一版便根据此进行设计。

 

二、代码的编辑与尝试的过程

第一版产物,但可惜的是,仅仅做到了两个主机相连,却并不能有效的识别文字

 

 

经过进一步查找和分析问题,通过建立传输加密之后,功能文字传输功能得以顺利实现。

    使用decode('utf-8')来实现信息解密

 

  

 

   使用ecode(‘utf-8’)来实现信息加密

   “UTF-8 是声明Python代码的文本格式是UTF-8,按照这种格式来读取程序。”

 

 加密后代码(我这边主要以服务端的演示为主,客户端详细见20214319薛曦晨同学的演示)

 

 

 

成功实现了不同信息的交流。

三、从传输文字到传输文件

 

图中已标出所接收到的图片格式的1.png,证明传输成功。

四、寻找自己的ip地址

想必大家已经看到了bind.('xxx,xxx,xxx,xxx',XXXX)了,前者是ip地址

 我在此处以windows10为例

1.左下角查询栏

 

 2.搜索WLAN设置

 

3.点击硬件属性

 

4.这样我们就找到了当前连接的网络的IP地址了

 

 

进行socket如果是多台设备,链接同一个局域网或移动热点,移动热点的查询方法基本一致。

当然做到最后,我们设计出来的代码依旧是初级代码,尚且达不到qq,微信的效果,后续有兴趣的同学可以进一步进行探索。

## 3. 实验过程中遇到的问题和解决过程
- 问题1:听的时候感觉很难,感觉离自己很远,做不到
- 问题1解决方案:同学鼓励,相互学习,一起尝试,最终发现并没有想象的那么难。
- 问题2:理解起来比较难
- 问题2解决方案:一条一条代码去查,去了解是干什么用的,多次尝试。
- 问题3:传输文件时找不到在哪里

-问题3解决办法:上网查询,询问同学,得以解决。


## 感想:

这一次尝试,又了解到了新的socket,struct库。对于看似遥不可及的qq,微信等聊天工具,自己这次也能做到了,其实比较激动,当然最后的产物虽然远不比QQ,微信。

每一次实验都是打开一片新的世界,虽然写的过程很难,但是最后的收获和感受还是很好的。

这次我完成的socket代码只能实现一条信息的传递,多次交流并不能留下历史记录,即时多加了几个conn.send()想实现一次多语句交流也并未成功,传输文件也是一次性的,目前只是了解到了表层知识,在以后的闲暇时间,仍需进一步了解和尝试,才能完善目前存在的诸多问题吧。

##查找链接

https://blog.csdn.net/SmartShepi/article/details/115405966

xxx
xxx

## 参考资料

posted @ 2022-05-03 16:52  张家有子名若尘  阅读(44)  评论(0编辑  收藏  举报