Saat kita ingin terhubung ke server melalui jaringan menggunakan TCP/IP di Java, kita perlu membuat objek java.net.Socket dan terhubung ke server. Jika Anda ingin menggunakan Java NIO, Anda juga bisa membuat objek SocketChannel di Java NIO.
Buat Soket
Contoh kode berikut terhubung ke port 80 di server dengan alamat IP 78.64.84.171. Server ini adalah server Web kami (www.VeVB.COM), dan port 80 adalah port layanan Web.
Copy kode kodenya sebagai berikut:
Soket soket = Soket baru("78.46.84.171", 80);
Kita juga bisa menggunakan nama domain sebagai pengganti alamat IP seperti pada contoh berikut:
Copy kode kodenya sebagai berikut:
Soket soket = Socket baru("VeVB.COM", 80);
Soket mengirimkan data
Untuk mengirim data melalui Socket, kita perlu mendapatkan aliran keluaran Socket (OutputStream). Contoh kodenya adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
Soket soket = Socket baru("VeVB.COM", 80);
OutputStream keluar = soket.getOutputStream();
keluar.write("beberapa data".getBytes());
keluar.flush();
keluar.dekat();
soket.close();
Kodenya sangat sederhana, namun jika ingin mengirim data ke server melalui jaringan, jangan lupa memanggil metode flush(). Implementasi TCP/IP yang mendasari sistem operasi pertama-tama akan memasukkan data ke dalam blok cache data yang lebih besar, dan ukuran blok cache disesuaikan dengan ukuran paket TCP/IP. (Catatan Penerjemah: Memanggil metode flush() hanya menulis data ke cache sistem operasi dan tidak menjamin bahwa data akan segera dikirim)
Soket membaca data
Untuk membaca data dari Socket, kita perlu mendapatkan aliran input Socket (InputStream). Kodenya adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
Soket soket = Socket baru("VeVB.COM", 80);
InputStream di = soket.getInputStream();
int data = masuk.baca();
//... baca data lebih lanjut...
melampirkan();
soket.close();
Kodenya tidak rumit, tetapi perlu dicatat bahwa membaca data dari aliran input Socket tidak membaca file. Metode read() dipanggil hingga -1 dikembalikan, karena untuk Socket, hanya ketika server Kapan koneksi ditutup, aliran input Socket akan mengembalikan -1, namun kenyataannya server tidak terus-menerus menutup koneksi. Misalkan kita ingin mengirim banyak permintaan melalui satu koneksi, maka menutup koneksi dalam kasus ini adalah hal yang konyol.
Oleh karena itu, ketika membaca data dari aliran input Socket, kita harus mengetahui jumlah byte yang akan dibaca. Hal ini dapat dicapai dengan membiarkan server memberitahukan data berapa banyak byte yang dikirim, atau dengan mengatur karakter khusus di akhir data. . Metode markup diterapkan.
Tutup Soket
Setelah menggunakan Socket, kita harus menutup Socket dan memutuskan sambungan dari server. Untuk menutup Socket, Anda hanya perlu memanggil metode Socket.close() Kodenya adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
Soket soket = Socket baru("VeVB.COM", 80);
soket.close();
(Teks lengkap berakhir)