Kalau di post ini kita nyobanya pake Telnet, maka sekarang kita bikin client sederhana untuk berkomunikasi dengan server tersebut.
Kode servernya
package simpleserver; import java.net.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { //Membuat Server Socket ServerSocket serverSocket = null; try { //Mencoba untuk binding ke port 4444 serverSocket = new ServerSocket(4444); } catch (IOException e) { System.err.println("Could not listen on port: 4444."); System.exit(1); } //Membuat client Socket Socket clientSocket = null; try { //Mencoba menerima koneksi socket dari client clientSocket = serverSocket.accept(); } catch (IOException e) { System.err.println("Accept failed."); System.exit(1); } //Membuat stream input/output dari client socket PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); //Menampilkan string yang dikirim oleh client System.out.println(in.readLine()); //Mengirimkan string "Hello!" ke client out.println("Hello World, Client!"); //Menutup koneksi dan stream out.close(); in.close(); clientSocket.close(); serverSocket.close(); } }
Pada server, untuk melakukan listening perlu class ServerSocket. Untuk menerima koneksi, instance perlu diinvokasi method acceptnya. Method ini akan melakukan blocking sampai terdapat koneksi dan akan mengembalikan sebuah instance dari class Socket. Sebuah socket akan mengurusi koneksi antara satu komputer dengan komputer yang lain. Pada client pun kita menggunakan class Socket tersebut untuk berkomunikasi dengan server. Untuk streaming datanya terdapat method getInputStream dan getOutputStream yang dapat digunakan layaknya standard input output.
Berikut kodenya
package simpleclient; import java.io.*; import java.net.*; public class Main { public static void main(String[] args) throws IOException { String IPdest = "127.0.0.1"; Integer Portdest = 4444; //Menyiapkan socket dan streaming i/o Socket echoSocket = null; PrintWriter out = null; BufferedReader in = null; try { //Membuka koneksi echoSocket = new Socket(IPdest, Portdest); //Membuka stream I/O dari socket yang sudah dibuka out = new PrintWriter(echoSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader( echoSocket.getInputStream())); } catch (UnknownHostException e) { System.err.println("Don't know about host: " + IPdest); System.exit(1); } catch (IOException e) { System.err.println("Couldn't get I/O for " + "the connection to: " + IPdest); System.exit(1); } //Mengirimkan string ke server out.println("Hello World, Server!"); //Menampilkan string yang dikirim oleh server System.out.println(in.readLine()); //Menutup koneksi dan stream out.close(); in.close(); echoSocket.close(); } }
Hasil pengujian pada Netbeans.
Server
run: Hello World, Server! BUILD SUCCESSFUL (total time: 4 seconds)
Client
run: Hello World, Client! BUILD SUCCESSFUL (total time: 0 seconds)
7 Comments
copy ah..
gan kok ini g mau,…
errornya di
Exception in thread “main” java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at client.Main.main(Main.java:53)
jadi kalo di program juragan bagian System.out.println(in.Readline);
bisa bantu juragan,…
juragan,..
ternyata mau,..
waduh malu juragan,…
hehehehe
kodingan nya salah gara2 saya bikin ulang,..
jadi saya koding ulang,…
sekalian latihan,…
lanjut gan
Thanks bgt bang.. Java Cool..
bagus sekali gan….
thankz for the tutorial…
Agan file downloadx corupt pas di buka,,,,
buka dalam bnetuk notpad juga g bisa,,,
makasih
ganti ke zip
One Trackback/Pingback
[…] Posts Java Socket Programming: Simple ClientSocket Programming di CManajemen MySQL dengan NetbeansSimple SCPDesign Pattern MVC Pada Pemrograman […]