Python 3.5のUDPソケットを使用して、クライアントからローカルホストのサーバーに大きなファイル(ビデオ、オーディオ)を転送するにはどうすればよいですか?小さな.txtファイルを送信できましたが、他のファイルタイプは送信できませんでした。私に提案してください。 ありがとうございました!UDPソケットファイル転送python 3.5
ここに私のコードは、テキストファイルを転送することです。
クライアントコード:
import socket
import sys
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
host = '127.0.0.1'
port=6000
msg="Trial msg"
msg=msg.encode('utf-8')
while 1:
s.sendto(msg,(host,port))
data, servaddr = s.recvfrom(1024)
data=data.decode('utf-8')
print("Server reply:", data)
break
s.settimeout(5)
filehandle=open("testing.txt","rb")
finalmsg=filehandle.read(1024)
s.sendto(finalmsg, (host,port))
サーバコード:
import socket
host='127.0.0.1'
port=6000
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(("",port))
print("waiting on port:", port)
while 1:
data, clientaddr= s.recvfrom(1024)
data=data.decode('utf-8')
print(data)
s.settimeout(4)
break
reply="Got it thanks!"
reply=reply.encode('utf-8')
s.sendto(reply,clientaddr)
clientmsg, clientaddr=s.recvfrom(1024)
あなたのコードを教えていただけますか? –
確かに。私は元のポストにそれを追加しました – Rohan
UDPは信頼性の低いプロトコルなので、いくつかの信頼性レイヤーを追加する必要があります。これは簡単な作業ではなく、単一のパケットを送受信するだけの簡単なコード例にこのすべてを追加することで、問題が広すぎます。しかし、より多くのデータを転送するために複数の送受信を使用することから始めることもできます。それ以外は、SOで質問するときに適切なコードフォーマットを使用する方法を学んでください。 –