-2
我需要一些幫助。這是我決定發送文件的代碼client.py
的一部分。Python使用tcp在一個目錄中發送一些文件
if file1.exists():
f=open(file_name1,'rb')
print >> sys.stderr,'Sending file datasensor1 to %s ....'%server_address
l = f.read(1024)
while (l):
print >> sys.stderr,'Sending...'
s.sendall(l)
l=f.read(1024)
f.close()
print >> sys.stderr,'Done sending to server %s' %server_address
s.shutdown(socket.SHUT_WR)
print s.recv(1024)
s.close()
elif file2.exists():
print "File datasensor1 not found"
f=open(file_name2,'rb')
print >> sys.stderr,'Sending file datasensor2 to %s ....'%server_address
l = f.read(1024)
while (l):
print >> sys.stderr,'Sending...'
s.sendall(l)
l=f.read(1024)
f.close()
print >> sys.stderr,'Done sending to server %s' %server_address
s.shutdown(socket.SHUT_WR)
print s.recv(1024)
s.close()
elif file3.exists():
print "File datasensor2 not found"
f=open(file_name3,'rb')
print >> sys.stderr,'Sending file datasensor3 to %s ....'%server_address
l = f.read(1024)
while (l):
print >> sys.stderr,'Sending...'
s.sendall(l)
l=f.read(1024)
f.close()
print >> sys.stderr,'Done sending to server %s' %server_address
s.shutdown(socket.SHUT_WR)
print s.recv(1024)
s.close()
else:
print "All Files not found"
這是工作時,目錄中至少有一個來自三個文件的決定。但是當目錄中有three
文件(file1,file2,and file3
)時,它只是發送file1。如果在目錄中有三個文件,我該如何發送所有三個文件?
在此先感謝
我得到的錯誤文件 「clie2.py」,第44行,在 s.sendall(L) 文件「/ usr/lib/python2.7/socket.py「,第228行,在meth 返回getattr(self._sock,name)(* args) 文件」/usr/lib/python2.7/socket.py「,行174,在_dummy 引發錯誤(EBADF,'Bad file descriptor') socket.error:[錯誤9]錯誤的文件描述符 –
這是什麼? 我認爲除了第三個if區塊,除了's.close()'和's.shutdown()'都可能有幫助嗎?嘗試一次。如果成功,我會在這裏更新 – nikpod
s指插座。 s = socket.socket() –