Halaman

Iklan Google

6 Agustus 2012

Java Socket: Aplikasi Server Client Sederhana

Kebetulan kemaren ngoprek dasarnya java socket, jadi sederhana saja, disini saya mencoba membuat aplikasi java socket client server, dimana server akan mengembalikan tulisan yang dikirim dari client. langsung saja kita lihat kode servernya.

SimpleServer.java


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class SimpleServer {
public static void main(String[] args) {
ServerSocket server = null;
try {
server = new ServerSocket(8888);
} catch (IOException e) {
e.printStackTrace();
}
if (server == null)
System.exit(1);

try {
Socket client = server.accept();
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
BufferedReader br = new BufferedReader(new InputStreamReader(
client.getInputStream()));
String input;
while ((input = br.readLine()) != null) {
out.println("echo:" + input);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

untuk kode diatas berfungsi untuk memproses inputan dari user dan mengembalikan pesan ke user melalui kode out.pringln("echo"+input);


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class SimpleClient {
public static void main(String[] args) {
Socket socket = null;
PrintWriter out = null;
BufferedReader br = null;
try {
socket = new Socket("localhost", 8888);
out = new PrintWriter(socket.getOutputStream(), true);
br = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

BufferedReader stdIn = new BufferedReader(new InputStreamReader(
System.in));
String input;
try {
while ((input = stdIn.readLine()) != null) {
out.println(input);
System.out.println(br.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

kode diatas merupakan kode aplikasi client yang akan melakukan koneksi ke server. yang diawali oleh


socket=new Socket("localhost",8888);

bertujuan untuk inisialisasi socket yang akan menghubungi server di localhost dengan port 8888

setelah terjadi koneksi, aplikasi klien siap untuk menerima inputan melalui kode dibawah ini.


BufferedReader stdIn=new BufferedReader(new InputStreamReader(System.in));
String input;
try {
while((input=stdIn.readLine())!=null){
out.println(input);
System.out.println(br.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}

saat client mengrimkan inputan text, maka server akan menjawab dengan dengan penambahan text "echo:".

aplikasi diatas hanya menerima satu client saja, agar server dapat menerima banyak client maka, bisa menggunakan multithread, jadi ketika server melakukan server.accpet(), bisa ditambahkan kedalam thread, misalnya.


while(true){
new SomeConnectionThread(server.accept()).start();
}

begitulah kira-kira, aplikasi yang saya buat melihat referensi dari : http://docs.oracle.com/javase/tutorial/networking/sockets/index.html

untuk source code bisa diunduh di : https://github.com/faitz/FaiSimpleJavaSocket

Semoga bermanfaat:

~faitz~

Tidak ada komentar :

Posting Komentar

silahkan post kritik dan saran