Rumah > Java > javaTutorial > Bagaimana untuk Menghantar dan Menerima Fail Binari Melalui Soket Java?

Bagaimana untuk Menghantar dan Menerima Fail Binari Melalui Soket Java?

DDD
Lepaskan: 2024-11-05 08:33:02
asal
546 orang telah melayarinya

How to Reliably Send and Receive Binary Files Over Java Sockets?

Menghantar dan Menerima Fail Binari melalui Soket Java

Dalam perbincangan ini, kami menyelidiki selok-belok menghantar dan menerima fail dalam format binari ( tatasusunan bait) melalui soket Java.

Mari kita analisa pelaksanaan pelayan terlebih dahulu. Pelayan mendengar pada port 4444 dan membaca data daripada klien menggunakan kaedah read(). Kaedah ini memerlukan saiz penimbal yang telah ditetapkan, yang dalam kes ini ditetapkan kepada 1024 bait. Walau bagaimanapun, pendekatan ini mempunyai had. Jika fail yang dipindahkan lebih besar daripada saiz penimbal, hanya sebahagian daripada fail akan diterima, yang membawa kepada kerosakan data.

Kod klien, sebaliknya, cuba menulis kandungan fail " test.xml" ke aliran keluaran menggunakan kaedah write(). Walau bagaimanapun, sebelum menghantar data, adalah penting untuk menentukan saiz fail. Jika saiz fail melebihi nilai integer maksimum (Integer.MAX_VALUE), ralat akan berlaku.

Untuk menyelesaikan isu ini dan memastikan pemindahan fail yang boleh dipercayai, pendekatan yang lebih mantap adalah disyorkan. Kod di bawah menunjukkan cara yang betul untuk menyalin strim bait menggunakan penimbal:

<code class="java">int count;
byte[] buffer = new byte[8192]; // The buffer size can be adjusted as needed
while ((count = in.read(buffer)) > 0) {
    out.write(buffer, 0, count);
}</code>
Salin selepas log masuk

Dengan menggunakan penimbal dan menggelung data sehingga penghujung strim dicapai, kami boleh mengendalikan fail mana-mana fail dengan cekap. saiz.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar dan Menerima Fail Binari Melalui Soket Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan