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>
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!