Contoh ini hanya menunjukkan fungsi sederhana, dan kode tidak ketat, tetapi hanya menjelaskan bagaimana klien dapat menerapkan kode sederhana yang terhubung ke server.
Kode menguji kompilasi dan lingkungan yang berjalan di bawah alat Eclipse terintegrasi seperti yang ditunjukkan pada gambar di bawah ini:
Kode Klien Echoclient.java:
Paket com.zhengzz.echo; impor java.io.bufferedreader; impor java.io.ioException; impor java.io.inputStreamreader; impor java.io.printwriter; impor java.net.socket; impor java.net.unknownseption; Echoc {soket soket pribadi; IOException E) {E.PrintStackTrace (); true); println (Br.Readline ()); main (string [] args) {echoc baru (). client ();Server echoserver.java kode:
Paket com.zhengzz.echo; import java.io.bufferedreader; impor java.io.ioexception; import java.io.inputStreamreader; import java.io.printwriter; import java.net.serversocket; impor java.net.socket; class; class; class; class; class; class; class; class; class; Echos {Private Serversocket Serversocket; socket = serversocket.accept (); )); ("--->" + linestr);}} catch (ioException e) {System.out.println ("Koneksi terputus: (");}}} kelas publik echoserver {public static void main (string [] ar gs) {echos baru (). server ();Hasil debugging langsung saya di bawah alat Eclipse adalah sebagai berikut:
Mari kita lihat contoh komunikasi soket java level Helloword. Proses Komunikasi:
Pertama -tama mulai sisi server dan masukkan loop dead untuk terus mendengarkan apakah ada permintaan koneksi untuk port tertentu. Kemudian jalankan sisi klien, klien mengeluarkan permintaan koneksi, dan server mendengarkan permintaan dan mengirimkan kembali pesan penerimaan ke klien. ke permintaan lain dalam loop mati. Setelah klien memasukkan string, tekan ENTER untuk mengirim data ke server. Server membaca data dan menanggapi data klien. Setelah permintaan diproses kali ini, utas yang dimulai menghilang. Jika klien menerima data pengembalian selain "OK", itu akan mengirim permintaan koneksi lagi dan mengirim data, dan server akan memulai utas lagi agar koneksi merespons. . . Klien keluar sampai data pengembalian yang diterima oleh klien adalah "OK".
Kode Sumber Server:
paket com.defonds.socket.begin; Socket; server = server baru (); Klien telah terhubung dengan soket klien = serversocket.accept (); ); Data DataInputStream Input = DataInputStream baru (socket.getInputStream ()); Data System.out "); // Kirim baris yang dimasukkan oleh string keyboard S = BufferedReader baru (inputStreamReader baru (System.in)). Readline (); out.writeutf (s); out.close (); input.close (); } Catch (Excep Episode E) {System .out.println ("Server Run Exception:" + E.GetMessage ())); Exception e) {socket = null;Kode Sumber Klien:
paket com.defonds.socket.begin; Socket; "Klien dimulai ..."); {// Buat soket stream dan hubungkan ke nomor port yang ditentukan pada soket host yang ditentukan = soket baru (ip_addr, port); // Kirim Data ke Server DataOutputStream out = DataOutputStream baru (socket.getoutputStream ()); readline (); ".Equals (ret)) {System.out.println (" Klien akan menutup koneksi "); thread.sleep (500); break;} out.close (); input.close ();} catch (pengecualian e ) {System.out.println ("Pengecualian Klien:" + E.GetMessage ()); ;CATATAN: Ketika aliran output soket menulis metode data adalah Writeutf, aliran input perlu menggunakan readutf untuk membaca data terkait. Kalau tidak, pengecualian eofexception akan dilemparkan.