Python程序设计20234117杨涛誉

20234117杨涛誉 2024-04-23 16:31:59

课程:《Python程序设计》
班级: 2341
姓名: 杨涛誉
学号:20234117
实验教师:王志强
实验日期:2024年4月23日
必修/选修: 公选课

 

(一)实验内容

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

(二)实验要求

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

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

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

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

注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现

 

创建服务端和客户端,选择一个通信端口
服务器端

根据老师发布的程序案例编写服务器和客户端代码 尝试运行

 

  1. import socket

  2. s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

  3. s.bind(("192.168.226.96",8006))

  4. s.listen()

  5. conn,address=s.accept()#阻塞

  6. data=conn.recv(1024)#接受

  7. print("从客户端收到的信息为:",data.decode())

  8. conn.sendall("黄河黄河,我是长江".encode())

  9. s.close()

接收者


 
  1. import socket
    import os
    from DesModule import *
    file1 = open("秘密", "r+")
    file1.write("哈哈哈哈哈哈哈哈")
    file1.seek(0)
    cryptostring = file1.readline()
    print(cryptostring)
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(("localhost", 8000))
    # s.connect(("192.168.43.158", 6000))
    s.sendall(cryptostring.encode())
    data = s.recv(1024)
    print("从服务器接收的数据为:",data.decode())
    s.close()

运行结果为

 出现错误,尝试修改

1.from DesModule import *:从DesModule模块导入所有内容。这个模块可能是用户自定义的,用于加密或解密数据,但在这段代码中并没有看到使用它的地方

2.检查发现是端口不一致导致无法连接,作为服务器,将服务器与客户端代码中的IP地址都修改为本机IP地址,将端口号设置为相同数字。

3.OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

修改后,发现只能导出一段文字就会结束运行 

最后发现,是因为自己的端口不对()

继续修改......

IP地址都修改为本机IP地址

 这样终于可以用了......

 

...全文
611 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 平台简介 License Spring Boot JDK-17 本项目基于ruoyi-vue-fast实现 项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可 活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源 若依wms是一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单。 毫无保留给个人及企业免费使用。 前端采用Vue、Element UI。 后端采用Spring Boot、Spring Security、Redis & Jwt。 权限认证使用Jwt,支持多终端认证系统。 支持加载动态权限菜单,多方式轻松权限控制。 高效率开发,使用代码生成器可以一键生成前后端代码。 前端项目地址 gitee https://gitee.com/zccbbg/ruo-yi-wms-vue https://.com/zccbbg/RuoYi-WMS-VUE 若依实战技术专栏 关注文末公众号回复:星球 在线体验 https://wms.ichengle.top/ 不同分支介绍 jdk17+vue3,支持多仓库,没有库区概念,操作简单,覆盖大部分库存应用场景。 jdk17+vue3,支持多仓库、多库区,记录生产日期、过期日期、sn,可适配一物一码,操作相对复杂。 jdk8+vue2 同步lite分支 若依wms功能 首页:库存预警与到期提醒、基础数据报表展示 仓库/库区:管理维护仓库基础数据 物料:管理维护物料基础数据 客户/供应商:管理维护联系人基础数据 入库:创建入库单后包括如下几个状态:暂存、作废、完成入库,入库类型包括:采购...

144

社区成员

发帖
与我相关
我的任务
社区描述
开展Python教学和技术交流
python 高校 北京·丰台区
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧