파이썬 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에서 질문 할 때 적절한 코드 형식을 사용하는 방법을 배우십시오. –