Я пытаюсь отправить файл с сервера на клиент, но получить ошибки. Пожалуйста, дайте мне знать, где я делаю неправильно.Python: ошибки передачи файлов
Это мой код сервера:
if msg in data.keys():
print("Requested file exists", msg)
f=open(msg,"rb")
datam= f.read(1024)
while (datam):
if(s.send(datam)):
print "sending data"
datam = f.read(1024)
s.close()
f.close
else:
print("File Not found",msg)
print("File Not found",data.keys())
c.close() # Close the connection
где тзд содержит адрес путь, где файл существует C = клиентский сокет S = сервер сокет Я хочу прочитать этот файл и отправить его клиенту, но я получаю эта ошибка
Got connection from ('127.0.0.1', 42330)
('Requested file exists', '/home/beenish/Pictures/pew.txt')
Traceback (most recent call last):
File "server.py", line 41, in <module>
if(s.send(datam)):
socket.error: [Errno 32] Broken pipe
на стороне клиента, я написал этот код, чтобы получать этот файл
s.listen(15)
f = open('\home\beenish\pictures\lol.txt', 'wb')
data = s.recv(1024)
while(data):
f.write(data)
data=s.recv(1024)
f.close()
s.close # Close the socket when done
где s является сокет клиента
Здесь я получаю эту ошибку
Traceback (most recent call last):
File "client.py", line 26, in <module>
s.listen(15)
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 22] Invalid argument
Положите отправку/прием в блок try/catch/finally: когда сообщение становится кислым, вы просто полностью закрываете розетку и не позволяете вашей программе взорваться. – lucasg