Bangun server jaringan dalam bahasa Java untuk mewujudkan komunikasi antara klien dan server, dan menyadari bahwa klien memiliki utas independen dan tidak saling mengganggu.
Langkah-langkah dasar untuk menerapkan multi-threading untuk mewujudkan komunikasi antara server dan multi-threading
Server server.java
paket test.concurrent.socket; impor java.io.*; impor java.net.inetaddress; impor java.net.serversocket; impor java.net.socket; /*** Dibuat oleh Dong pada 15-6-22. * Socket Communication Berdasarkan protokol TCP, mengimplementasikan login pengguna* sisi server*/server kelas publik {public static void main (string [] args) {coba {// 1. Buat soket sisi server, yaitu, server, tentukan port terikat, dan dengarkan server port server ini server = server baru (8888); Soket soket = null; // Catat jumlah klien int count = 0; System.out.println ("*** Server akan mulai, menunggu tautan klien ***"); // Loop Listen untuk menunggu tautan klien saat (true) {// Memanggil metode ACCECT () untuk mulai mendengarkan, menunggu tautan klien socket = serversocket.accept (); // Membuat utas baru serverThread serverThread = serverThread baru (soket); // Mulai utas serverthread.start (); Count ++; // Cari jumlah klien System.out.println ("Jumlah klien:" + hitung); Alamat inetaddress = socket.getInetAddress (); System.out.println ("IP klien saat ini:" + address.getHostAddress ()); }} catch (ioException e) {E.PrintStackTrace (); }}} Kelas pemrosesan utas sisi server serverthread.java
paket test.concurrent.socket; impor java.io.*; impor java.net.socket; /*** Dibuat oleh Dong pada 15-6-22. * Kelas pemrosesan utas sisi server*/kelas publik ServerThread memperluas thread {// soket soket soket = null; ServerThread publik (soket soket) {this.socket = socket; } // Operasi yang dieksekusi oleh utas menanggapi permintaan klien public void run () {inputStream adalah = null; InputStreamReader ISR = NULL; BufferedReader BR = null; OutputStream OS = null; Printwriter pw = null; coba {// dapatkan aliran input dan baca informasi klien adalah = socket.getInputStream (); ISR = inputStreamReader baru (IS); // Konversi aliran byte ke stream karakter BR = new bufferedReader (ISR); // Tambahkan info string buffered = null; // Loop membaca data while ((info = br.readline ())! = Null) {System.out.println ("Saya server, dan klien mengatakan:" +info); } socket.shutdownInput (); // Tutup aliran input // Dapatkan aliran output sebagai respons terhadap permintaan klien OS = socket.getoutputStream (); pw = printwriter baru (OS); // dikemas sebagai aliran cetak pw.write ("selamat datang"); pw.flush (); // output cache} catch (ioException e) {e.printstacktrace (); } akhirnya {coba {// tutup sumber daya jika (pw! = null) pw.close (); if (os! = null) os.close (); if (is! = null) is.close (); if (br! = null) br.close (); if (socket! = null) socket.close (); } catch (ioException e) {e.printstacktrace (); }}}} Klien.java
paket test.concurrent.socket; impor java.io.*; impor java.net.socket; /*** Dibuat oleh Dong pada 15-6-22. * Klien*/kelas publik klien {public static void main (string [] args) {coba {// 1. Buat soket klien, tentukan nomor port server dan soket alamat soket = soket baru ("localhost", 8888); // 2. Dapatkan aliran output dan kirim informasi ke server outputStream os = socket.getoutputStream (); // byte output stream printwriter pw = new printwriter (OS); // Bungkus aliran output sebagai aliran cetak pw.write ("Nama pengguna: tom; kata sandi: 456"); pw.flush (); socket.shutdownoutput (); // Tutup aliran output inputStream adalah = socket.getInputStream (); InputStreamReader ISR = InputStreamReader baru (IS); BufferedReader BR = BufferedReader baru (ISR); Info string = null; // Baca while ((info = br.readline ())! = Null) {System.out.println ("Saya klien: server mengatakan:" + info); } br.close (); is.close (); isr.close (); pw.close (); os.close (); socket.close (); } catch (ioException e) {e.printstacktrace (); }}}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.