1
파이썬에서 클라이언트에서 서버로 파일을 보내려고합니다. 문제없이 전송하지만 수신 된 파일을 동일한 파일 이름으로 저장하려고합니다. 그것이 내가 이것을 쓴 한 Server.The 코드를 클라이언트에서 보낸 나는 어떻게 같은 파일 이름으로 해당 파일을 저장하는 생각을받지 못했습니다 것은 :클라이언트에서 서버로 파일을 보내고 동일한 파일 이름으로 저장하는 방법?
클라이언트 코드
import socket, os, shutil
from stat import ST_SIZE
HOST=raw_input("Please enter IP-address : ")
PORT=int(raw_input("Please enter PORT Number : "))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST,PORT))
if s.recv(8)!='READY':
raw_input('Unable to connect \n\n Press any key to exit ...')
s.close()
exit()
path=raw_input("Please enter the complete PATH of your file : ")
f=open(path,'rb')
fsize=os.stat(f.name)[ST_SIZE]
s.sendall(str(fsize).zfill(8))
sfile = s.makefile("wb")
shutil.copyfileobj(f, sfile)
sfile.close()
s.close()
f.close()
서버 코드
import socket
import shutil
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
HOST = ''
PORT = 23240
s.bind((HOST, PORT))
s.listen(3)
conn, addr = s.accept()
print 'conn at address',addr
conn.sendall('READY')
i=1
f = open(r'file_'+ str(i)+".txt",'wb')
i=i+1
print 'File size',fsize
sfile = conn.makefile("rb")
shutil.copyfileobj(sfile, f)
sfile.close()
f.write(conn.recv(fsize))
f.close()
conn.close()
s.close()
f.name을 보내지 않는 이유는 무엇입니까? –
클라이언트 측에서 파일의 전체 경로를 입력해야합니다. 및 수신기 쪽, 같은 이름과 동일한 파일 형식으로 해당 파일을 받고 싶습니다 ... – Ruchir