Mewujudkan Pelayan Sembang Menggunakan Java

Pengenalan

Rangkaian adalah cabang utama pengaturcaraan yang penting untuk menyambungkan pengguna melalui peranti. Oleh kerana banyak bahasa pengaturcaraan mempunyai pelbagai cara untuk membentuk pengguna dan pelayan sambungan atau antara rakan sebaya. Untuk memulakan pengaturcaraan, Java adalah salah satu bahasa pertama yang banyak belajar pengaturcara, dan salah satu cara yang menarik java dapat mengendalikan sambungan rangkaian adalah melalui penggunaan Java Sockets. Saya telah menyediakan tutorial ini untuk mengarahkan cara menggunakan soket di java dengan membangunkan pelayan sembang antara satu pelayan dan banyak pengguna. Tutorial ini dibahagikan antara sisi pelanggan dan pembangunan sisi pelayan.

Keperluan:

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

Pemasa: Kira-kira 15-30 minit

Kemahiran: Panduan ini menganggap bahawa anda mempunyai pengalaman asas Java dan biasa dengan jenis Java I / O biasa

Langkah 1: Persediaan ServerSocket dalam Kelas Pelayan

Buat soket Pelayan statik di awal utama dalam kelas ChatServer dan instantiate dengan nombor port.

TIP: ServerSockets boleh diolah dengan nombor port selain 4444, tetapi angka yang lebih rendah daripada 1000 lebih mungkin telah digunakan oleh sistem.

Langkah 2: Buat Socket dalam Kelas Masuk

Buat soket dalam kaedah utama Masuk, menentukan alamat hos dan nombor port. Oleh kerana ini adalah tetingkap log masuk, soket boleh menjadi pemboleh ubah contoh kerana ia akan dihantar ke tetingkap sembang yang sebenar kemudian.

TIP: "localhost" digunakan dalam parameter soket untuk tujuan debugging untuk menentukan bahawa pelayan sedang berjalan pada komputer yang sama dengan klien. Kemudian ini boleh diubah untuk mengambil alamat hos untuk menyambung ke pelayan jauh.

Langkah 3: Buat Gelung untuk Terus Terima Pelanggan

Setelah instantiating serverSocket dalam chatServer, mulailah gelung sementara yang secara berterusan menerima semua klien.

Langkah 4: Buat Threads Pelanggan

  1. Dengan soket yang diterima dari serverocket.accept, buat ClientThread baru.
  2. Buat Thread baru dengan menggunakan ClientThread, dan kemudian panggil mula pada thread.
  3. Dalam ClientThread, buat ClientThread extend ChatServer, dan laksanakan Runnable
  4. Buat pembangun ClientThread dan tambahkan kaedah berjalan.

Langkah 5: Buat Thread Server

  1. Buat ServerThread baru menggunakan soket.
  2. Buat Thread baru dengan menggunakan ServerThread, dan kemudian panggil mula pada thread.
  3. Dalam ServerThread, buat ServerThread melaksanakan Runnable
  4. Buat pembina ServerThread dan tambahkan kaedah berjalan.

Langkah 6: Buat Data Send dan Receive Thread Client

  1. Dalam ClientThread membuat BufferedReader peribadi untuk menerima data daripada pelanggan, dan PrintWriter untuk menulis kepada pelanggan.
  2. Buat pencetak untuk PrintWriter
  3. Inisialisasi PrintWriter yang dijalankan dengan aliran output soket, dan BufferedReader dengan InputStreamReader baru menggunakan aliran input soket
  4. Buat gelung sementara dalam jangka yang memeriksa sebarang input baru dan mencetak input kepada semua pelanggan menggunakan senarai ClientThreads dan getter untuk PrintWriter

Langkah 7: Buat Data Send dan Receive Thread Server

  1. Dalam ServerThread membuat BufferedReader peribadi untuk menerima data dari pelayan, BufferedReader lain untuk menerima data daripada pengguna, dan PrintWriter untuk menulis ke pelayan.
  2. Inisialisasi PrintWriter yang dijalankan dengan aliran output soket, BufferedReader pelayan dengan InputStreamReader baru menggunakan aliran input soket, dan BufferedReader pengguna dengan InputStreamReader baru menggunakan System.In
  3. Buat seketika gelung dalam jangka yang memeriksa sebarang input baru dari pelayan dan mencetak input ke konsol, dan memeriksa sebarang input baru dari pengguna dan mencetak input itu ke pelayan.

Langkah 8: Uji Pelayan dan Tambah Fungsi Pilihan

Selepas menjalankan pelayan dan melancarkan klien, program itu harus menyampaikan semua mesej dari setiap klien kepada semua pelanggan lain. Ini adalah ujian kecil tentang apa yang boleh dilakukan dengan soket java.

Anda boleh mengembangkan projek ini dengan menambahkan fungsinya untuk membiarkan pelayan menyampaikan mesej, mengarsipkan mesej, membolehkan bentuk input yang lain dan lebih banyak untuk menjadi lebih akrab dengan soket java dan rangkaian secara umum.

Artikel Berkaitan