JAVAを使用してUDP経由で画像を送信しようとしています。私は送信者と受信者を実装することができ、小さな画像(この場合は18KB)で動作します。大きな画像(2MB)を送信しようとすると、受信者は数百のデータグラムを送信した後に渋滞しているように見えます。udpで大きな画像ファイルを送信できません
送信者からの各パケットを受信する受信者のループです。
while(true) {
packetCount++;
System.out.println("PKT: " + packetCount);
receievePacket = new DatagramPacket(recieveData, recieveData.length);
try {
receieveSocket.receive(receievePacket);
} catch (IOException e) {
System.out.println("Error receieving packet");
e.printStackTrace();
}
bos.write(recieveData, 0, (int) DATAGRAM_MAX_SIZE);
// Terminate loop if last packet received
if (packetCount == packetNum) {
break;
}
}
このループは単にユーザーからのポート番号を受信する前に、コードは、ソケットを設定し、送信されますどのように多くのパケットを指定の送信者から単一のパケットをrecieves。これはpacketNumに格納されます。
大きな画像を送信しようとしたときに誰かが停止する理由は誰にも考えられますか? おかげ
http://stackoverflow.com/questions/9203403/java-datagrampacket-udp-maximumによると最大バッファサイズ制限があるようです-buffer-size –
大きな画像をより小さなパケットに「チャンクアウト」しようとしましたか? –
yeh、私の送信者は、1024バイトのデータグラムに画像を分割し、それぞれを個別に受信者に送信します – sam