144
社区成员




课程:《Python程序设计》
班级: 2341
姓名: 杨涛誉
学号:20234117
实验教师:王志强
实验日期:2024年4月23日
必修/选修: 公选课
(一)实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
(二)实验要求
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。
注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现
根据老师发布的程序案例编写服务器和客户端代码 尝试运行
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(("192.168.226.96",8006))
s.listen()
conn,address=s.accept()#阻塞
data=conn.recv(1024)#接受
print("从客户端收到的信息为:",data.decode())
conn.sendall("黄河黄河,我是长江".encode())
s.close()
接收者
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地址
这样终于可以用了......