私はUDPソケットを使用して画像を送信しており、チェックサムやシーケンス番号などの情報を各パッケージに追加したいと考えています。udpソケットに情報を追加するには?
ここでは、コードです:
client.py
import socket
import sys
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
buf = 1024
f = open("image2.png",'wb')
data , addr = sock.recvfrom(buf)
while True:
print "PACKAGE RECEIVED..."
f.write(data)
data, addr = sock.recvfrom(buf)
とserver.py
私はUDPヘッダにフィールドを追加したり、各UDPに追加情報を追加することができますどのようにimport socket
import sys
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
f=open ("image.png", "rb")
print sys.getsizeof(f)
buf = 1024
data = f.read(buf)
while (data):
if(sock.sendto(data,(UDP_IP,UDP_PORT))):
print "sending ..."
data = f.read(buf)
は、ソケット、例えば:シーケンス番号を追加する?
ちょうど私はUDPパケットを使ってtcpプロトコルのシミュレーションを実行する必要がありますが、情報をUDPパケットにカプセル化する方法の例が必要です。 –
それから、どんな情報をそこに残しておきたいのかと思ってください。私は、必要に応じて、パディング付きの固定サイズのフレームに行くだろう。この情報については、おそらくいくつかの種類のチェックサム、多分いくつかのフレームが必要です。それはあなたが達成したいと思うものによって異なります。また、おそらくパケットが失われたときにパッケージを再送信する要求を処理する必要があります。 TCPにはたくさんの素晴らしい機能がありますが、それらのすべてが必要なわけではないので、本当に必要なものに集中してみてください。 – fulaphex