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

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

 

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

144

社区成员

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

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