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地址

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

 

...全文
506 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
源码链接: https://pan.quark.cn/s/a4b39357ea24 在C语言编程环境中,多项式求和是一项常见的编程实践,它融合了数学理论、算法设计以及C语言的基础运用。此类程序可能包含对用户输入的多项式表达式进行解析,进而计算各项的总和。接下来将对这一主题进行深入阐述。 多项式在数学领域是一个基础性概念,它由常数、变量及指数通过线性方式组合而成,例如表达式`3x^2 + 2x - 1`。在C语言环境下,我们可以借助数组来表示多项式的各项系数,例如通过定义一个整型数组`int coefficients[] = {3, 2, -1}`来保存表达式`3x^2 + 2x - 1`的系数值。 1. **多项式解析**: 解析多项式的过程通常需要从用户处获取输入数据,如表达式`3x^2 + 2x - 1`。在C语言中,可以利用`scanf()`函数来接收用户的输入。解析流程涉及到识别每个项的系数、变量及指数,这可能需要运用到字符串处理函数,例如使用`strtok()`函数来分割字符串,以及通过`atoi()`或`atof()`函数将字符串转换为数值类型。 2. **数据结构构建**: 为了高效地处理多项式,可以设计一个结构体用以存储每一项的系数和指数信息。例如: ```c typedef struct { int coefficient; int exponent; } Term; ``` 随后,可以选用链表或数组来存储这些结构体实例,以此来完整表示一个多项式。 3. **求和运算**: 求和操作可能包含两个阶段:(1) 对相同指数的项进行系数相加,(2) 将计算结果整合至最终的多项式表达式中。在处理同次幂项时,需要遍历两个多项式,识别出具有相同指数的项...

144

社区成员

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

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