我是新手,这是我关于stackoverflow的第一个问题,因此,这是我的问题
客户代码
import socket
cs = socket.socket()
ADDR = ('192.168.29.139',9999)
cs.connect(ADDR)
l = int(cs.recv(2048).decode())
data = cs.recv(l).decode()
data = eval(data)
cont = data["file"]["cont"]
f = open(data['file']['name'] + data['file']['ext'],"wb")
f.write(cont)
f.close()
服务器代码
## SERVER SIDE
import socket
ss = socket.socket()
ADDR = ('192.168.29.139',9999)
ss.bind(ADDR)
ss.listen()
conn,addr = ss.accept()
msg = input("Enter message: ")
filepath = input("Enter filepath: ")
fileName = input("Enter filename : ")
fileExt = input("Enter fileExt:" )
f = open(filepath,"rb")
r = f.read()
f.close()
fileDict = {"name": fileName,"ext": fileExt,"cont": r}
msg_dict = {"msg":msg,"file": fileDict}
msg_dict = str(msg_dict).encode()
conn.send(str(len(msg_dict)).encode())
conn.send(msg_dict)
当我在同一台计算机中传输文件时(即使是更大的文件,如几个GB,在此测试中,我使用的是Windows 7测试视频,大约25MB),此方法完全可以正常工作,但是当我在LAN上使用它来在同一网络内的两台计算机之间传输同一文件会显示错误
在此声明中正确
data = eval(data)
错误是,在打印了很多行之后,例如\ xo ...和空行
EOL while scanning string literal ^
使用泡菜也出现了错误
感谢您阅读...请帮助!