我想通過使用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;
}
}
在此之前剛剛環路接收來自用戶的端口號的代碼,建立所述插座和從指定多少分組要發送到的發送者臨危單個分組。這存儲在packetNum中。
任何人都可以想到爲什麼它試圖發送更大的圖像時停滯的原因? 感謝
看起來像有一個最大的緩衝區大小限制根據http://stackoverflow.com/questions/9203403/java-datagrampacket-udp-maximum -buffer-size – 2012-02-22 18:54:52
您是否嘗試將較大的圖像「分塊」成較小的數據包? – 2012-02-22 18:57:10
你好,我的發件人把圖片分割成1024字節的數據報,並分別發送給接收者 – sam 2012-02-22 19:00:15