Membuat Server Obrolan Menggunakan Java

pengantar

Jaringan adalah cabang utama dari pemrograman yang sangat penting untuk menghubungkan pengguna melalui perangkat. Karena itu banyak bahasa pemrograman memiliki banyak cara untuk membentuk koneksi pengguna dan server atau antar rekan. Untuk memulai pemrograman, Java adalah salah satu bahasa pertama yang dipelajari oleh banyak programmer, dan salah satu cara menarik java dapat menangani koneksi jaringan adalah melalui penggunaan Java Sockets. Saya telah menyiapkan tutorial ini untuk menginstruksikan cara menggunakan soket di java dengan mengembangkan server obrolan antara satu server dan banyak pengguna. Tutorial ini dibagi antara pengembangan sisi klien dan sisi server.

Persyaratan:

  • Java JDK (Saya menggunakan versi 1.8.0_74 untuk ini)
  • Java IDE (Saya menggunakan Eclipse Mars untuk ini)
  • Struktur paket dengan kelas-kelas di atas

Timer: Sekitar 15-30 menit

Keahlian: Panduan ini mengasumsikan bahwa Anda memiliki pengalaman Java dasar dan terbiasa dengan tipe I / O Java yang umum

Langkah 1: Atur ServerSocket di Kelas Server

Buat soket Server statis di awal utama di kelas ChatServer dan instantiate dengan nomor port.

TIP: ServerSockets dapat dipakai dengan nomor port selain 4444, tetapi angka yang lebih rendah dari 1000 lebih mungkin sudah digunakan oleh sistem.

Langkah 2: Buat Socket di Kelas Login

Buat soket di metode utama Login, tentukan alamat host dan nomor port. Karena ini adalah jendela masuk, soket dapat menjadi variabel instan karena akan diteruskan ke jendela obrolan yang sebenarnya nanti.

TIP: "localhost" digunakan dalam parameter soket untuk tujuan debugging untuk menentukan bahwa server berjalan pada komputer yang sama dengan klien. Nantinya ini dapat diubah untuk mengambil alamat host untuk terhubung ke server jarak jauh.

Langkah 3: Buat Loop untuk Menerima Klien Secara Terus-menerus

Setelah instantiating serverSocket di chatServer, mulai loop sementara yang terus-menerus menerima semua klien.

Langkah 4: Buat Thread Klien

  1. Dengan soket yang diterima dari serverocket.accept, buat ClientThread baru.
  2. Buat utas baru menggunakan ClientThread, lalu panggil mulai di utas.
  3. Di ClientThread, buat ClientThread memperluas ChatServer, dan mengimplementasikan Runnable
  4. Buat konstruktor ClientThread dan tambahkan menjalankan metode.

Langkah 5: Buat Server Thread

  1. Buat ServerThread baru menggunakan soket.
  2. Buat utas baru menggunakan ServerThread, lalu panggil mulai utas.
  3. Di ServerThread, buat ServerThread mengimplementasikan Runnable
  4. Buat konstruktor ServerThread dan tambahkan menjalankan metode.

Langkah 6: Buat Utas Klien Mengirim dan Menerima Data

  1. Di ClientThread, buat BufferedReader pribadi untuk menerima data dari klien, dan PrintWriter untuk menulis kepada klien.
  2. Buat pengambil untuk PrintWriter
  3. Inisialisasi PrintWriter yang dijalankan dengan aliran output soket, dan BufferedReader dengan InputStreamReader baru menggunakan aliran input soket
  4. Buat loop sementara dalam menjalankan yang memeriksa setiap input baru dan mencetak input ke semua klien menggunakan daftar ClientThreads dan pengambil untuk PrintWriter

Langkah 7: Buat Utas Server Kirim dan Terima Data

  1. Di ServerThread buat BufferedReader pribadi untuk menerima data dari server, BufferedReader lain untuk menerima data dari pengguna, dan PrintWriter untuk menulis ke server.
  2. Inisialisasi PrintWriter yang dijalankan dengan aliran output soket, BufferedReader server dengan InputStreamReader baru menggunakan aliran input soket, dan BufferedReader pengguna dengan InputStreamReader baru menggunakan System.In
  3. Buat loop sementara dalam menjalankan yang memeriksa setiap input baru dari server dan mencetak input ke konsol, dan memeriksa setiap input baru dari pengguna dan mencetak input tersebut ke server.

Langkah 8: Uji Server dan Tambahkan Fungsi Opsional

Setelah menjalankan server dan meluncurkan klien, program harus menyampaikan semua pesan dari setiap klien ke semua klien lain. Ini adalah tes kecil dari apa yang bisa dilakukan dengan soket java.

Anda dapat memperluas proyek ini dengan menambahkan fungsionalitas untuk membiarkan server itu sendiri menyampaikan pesan, mengarsipkan pesan, memungkinkan bentuk input lain dan lainnya menjadi lebih akrab dengan soket java dan jaringan secara umum.

Artikel Terkait