Minggu, 11 Juni 2017

Pemrograman Jaringan - Membangun Aplikasi Client-Server Sederhana menggunakan TCP

Membangun Aplikasi Client-Server Sederhana menggunakan TCP

Listing Server
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 ic) {
ic.printStackTrace();
}
}
}

Logika

Pada sintaks pertama kita harus mengimport java.net yang berfungsi sebagai dasar library yang digunakan untuk pemograman jaringan pada java dan java.io untuk melakukkan input output pada sintaks terdapat PORT bernomor 5000 port 5000 sendiri merupakan port yang digunakan untuk mengguakan layanan TCP pada block try{ pertama sisi server akan memberitahu apabila server jalan atau hidup dengan menampilkan pesan “aplikasi server hidup” . lalu pada block try{ ke 2  berfungsi pada sisi server untuk menunggu sebuah kata kunci yang akan diinput oleh client. pada blok try{ ke 3 sintaks diatas berfungsi sebagai pengenal kata kunci dari client yang kata kunci nya adalah “salam” apabila client memasukkan kata salam pada bagian client maka server akan menjawab dengan kata  “salam juga “ tetapi apabila sisi client tidak memasukkan kata kunci yang benar maka server akan menjawab dengan kata “ Maaf, saya tidak mengerti” dan akan dikirimkan ke sisi server kata tersebut dan dan server terhenti. Pada blok try{  bagain akhir pada kodingan ini berfungsi sebagai penutup koneksi server dan client

Output

Listing 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("Erorr 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);
}
}
}
Logika
Program ini menggunakan package yang sama dengan server dan menggunakan port 5000 untuk menjalankan TCP, pada blok try{ pertama program sintaks yang ada di block tersebut berfungsi untuk membuka koneksi ke server apabila gagal dalam membuka koneksi ke server maka program akan memberitahukan ke user dengan mencetak kata unknown host atau error. pada block try{ 2 program akan menanyakan kata kunci kepada user apabila benar ataupun salah program akan menampilkan tanggapan dari server dan pada block try{ terakhir program berfungsi sebagai penutup koneksi.

Output


 

Tidak ada komentar:

Posting Komentar