クライアントがサーバのファイルをダウンロードするクライアントサーバプログラムを作成しています。 localhostでは正常に動作しますが、問題はlocalhost接続以外で発生します。私はグーグルで試してみましたが、(以前は同じ問題に提案されていた)解決策はありませんでした。私は別の解決策を試してみたが、それらのどれも働いたpythonソケットで不完全なデータ転送
def upload(sock): # server.py
filename = str(sock.recv(4096)).split(' end')[0]
if os.path.exists(filename):
sock.send('YES')
sock.send(str(os.path.getsize(filename)) + ' end')
foo = open(filename, 'rb')
upbytes = foo.read(4096)
sock.sendall(upbytes)
while upbytes != '':
upbytes = foo.read(4096)
sock.sendall(upbytes)
foo.close()
print "\tUpload Complete !"
else:
sock.send('NO')
def download(sock, filename): #client.py
sock.send(filename + ' end')
if sock.recv(4096) == 'YES':
filesize = int(str(sock.recv(4096)).split(' end')[0])
print filesize, 'filesize'
foo = open('downloaded_' + os.path.basename(filename), 'wb')
downbytes = sock.recv(4096)
foo.write(downbytes)
downlen = len(downbytes)
while downlen < filesize:
downbytes = sock.recv(4096)
if not downbytes:
break
foo.write(downbytes)
downlen += len(downbytes)
foo.close()
print 'filesize', filesize, 'downlen', downlen
print "\t\tDownload Complete !\n"
else:
print "\t\tFile not found ! <" + filename + '>'
:
は、ここに私のコードです!
こんにちは。ここで質問を正しくすることは本当に重要です。 [ask]と[mcve]を見てください。ありがとう。質問に正しくタグを付けることは本当に重要です。質問はPythonコードにのみ関連するように見えるので、[vb.net]タグを追加することは適切ではありません。再度、感謝します。 –
@DavidWilsonよろしくお願いします。もっと重要なのは、この問題の解決策を知ることは素晴らしいことです。私はここでさらに移動するためにここで詰まっています:( –
あなたが現在のディレクトリからファイルをホストする 'python -m http.server'(Python 3)を実行する場合 –