Senin, 21 Mei 2012

Pemrograman Socket Client/Server

Demo 5
Pada demo yang ke-5 ini saya akan membahas tentang membuat program dengan socket client/server. Yaitu untuk melakukan chatting antara client dan server. Dalam membuat program sebaiknya menggunakan aplikasi texpad, karena di texpad menyediakan menu untuk compile dan dapat melihat error dengan mudah. Berikut ini adalah script diservernya :
 
import java.io.*;
import java.net.*;

public class simpleServer {
public final static int TESTPORT = 5000;
public static void main(String args[]) {
ServerSocket checkServer = null;
String line;
BufferedReader is = null;
DataOutputStream os = null;
Socket clientSocket = null;

try {
checkServer = new ServerSocket(TESTPORT);
System.out.println("Aplikasi Server Hidup ..");
} catch (IOException e) {
System.out.println(e);
}
try {
clientSocket = checkServer.accept();
is = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
os = new DataOutputStream(clientSocket.getOutputStream());
} catch (Exception ei) {
ei.printStackTrace();
}
try {
line = is.readLine();
System.out.println("Terima : " + line);
if (line.compareTo ("salam") == 0) {
os.writeBytes("salam juga");
} else {
os.writeBytes("Maaf, saya tidak mengerti");
}
} catch (IOException e) {
System.out.println(e);
}
try {
    os.close();
    is.close();
    clientSocket.close();
} catch (IOException io) {
    io.printStackTrace();
}
}
}
Setelah program diatas dibuat, simpan dengan nama simpleServer.java dan kemudian dirunning dengan mengetikkan javac simpleClient.java. Dan outputnya adalah sebagai berikut :

Demo 6 
Setelah Demo 5 dijalankan, selanjutnya kita membuat program untuk demo 6. Pada demo 6 ini ditujukan untuk si Client. Apabila Client memasukkan pesan dan nantinya akan masuk ke server. Berikut Script untuk client :
import java.io.*;
import java.net.*;

public class simpleClient {
public final static int REMOTE_PORT = 5000;
public static void main(String args[]) throws Exception {
Socket cl = null;
BufferedReader is = null;
DataOutputStream os = null;
BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
String userInput = null;
String output = null;

// Membuka koneksi ke server pada port REMOTE_PORT
try {
cl = new Socket(args[0], REMOTE_PORT);
is = new BufferedReader(new
InputStreamReader(cl.getInputStream()));
os = new DataOutputStream(cl.getOutputStream());
} catch(UnknownHostException e1) {
System.out.println("Unknown Host: " + e1);
} catch (IOException e2) {
System.out.println("Error io: " + e2);
}

// Menulis ke server
try {
System.out.print("Masukkan Kata Kunci: ");
userInput = stdin.readLine();
os.writeBytes(userInput + "\n");
} catch (IOException ex) {
System.out.println("Error writing to server..." + ex);
}

// Menerima tanggapan dari server
try {
output = is.readLine();
System.out.println("dari server: " + output);
} catch (IOException e) {
e.printStackTrace();
}

// close input stream, output stream dan koneksi
try {
    is.close();
    os.close();
    cl.close();
} catch (IOException x) {
    System.out.println("Error writing..." + x);
}
}
}

Setelah program diatas dibuat, simpan dengan nama simpleClient.java dan dirunning dengan mengetik javac simpleClient.java. Dan outputnya adalah sebagai berikut :
Sesuai dengan gambar diatas, si client mendapatkan balasan dari server secara otomatis.

sekian dan terima kasih.

Tidak ada komentar:

Posting Komentar