我想從服務器發送文件到客戶端,但得到錯誤。請讓我知道我做錯了什麼。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
其中msg包含其中文件存在 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