Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mensiri dan Menyahseri Objek Java untuk Komunikasi Soket?

Bagaimanakah Saya Boleh Mensiri dan Menyahseri Objek Java untuk Komunikasi Soket?

DDD
Lepaskan: 2024-12-15 11:28:14
asal
424 orang telah melayarinya

How Can I Serialize and Deserialize Java Objects for Socket Communication?

Mensiri Objek Java kepada Tatasusunan Byte untuk Penghantaran Soket

Masalah:

Pertimbangkan senario di mana kelas boleh bersiri dipanggil AppMessage perlu dihantar melalui soket ke mesin lain dan dibina semula daripada bait yang diterima. Objektifnya adalah untuk meneroka teknik untuk mencapai objektif ini dalam Java.

Penyelesaian:

Untuk menyediakan tatasusunan bait untuk penghantaran, gunakan kaedah bersiri:

static byte[] serialize(final Object obj) {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();

    try (ObjectOutputStream out = new ObjectOutputStream(bos)) {
        out.writeObject(obj);
        out.flush();
        return bos.toByteArray();
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}
Salin selepas log masuk

Sebaliknya, untuk mencipta semula objek daripada tatasusunan bait, gunakan deserialize kaedah:

static Object deserialize(byte[] bytes) {
    ByteArrayInputStream bis = new ByteArrayInputStream(bytes);

    try (ObjectInput in = new ObjectInputStream(bis)) {
        return in.readObject();
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}
Salin selepas log masuk

Kaedah ini membolehkan pensirilan dan penyahsirilan objek Java yang cekap, memudahkan penghantarannya melalui soket untuk pembinaan semula pada mesin penerima.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensiri dan Menyahseri Objek Java untuk Komunikasi Soket?. 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