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

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

 

...全文
146 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

144

社区成员

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

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