Praktikum Jaringan Komputer
Client-Server TCP dengan Menggunakan Bahasa Pemrograman Java
DISUSUN OLEH :
Hafiz Adi Wijaya
065001600009
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS TRISAKTI
2017
I. Judul Praktikum : Client-Server TCP dengan menggunakan bahasa pemograman Java
II. Tujuan Praktikum : Dapat membuat program Client-Server TCP dengan menggunakan bahasa pemrograman Java
III. Elemen Kompetensi
Deskripsi : Membuat program Client-Server TCP dengan menggunakan bahasa pemrograman Java
Kompetensi Dasar : Dapat Membuat program Client-Server TCP dengan menggunakan bahasa pemrograman Java
TEORI SINGKAT
Dalam komunikasi antara dua pihak, tentunya harus digunakan kesepakatan aturan dan format yang sama agar komunikasi dapat dimengerti. Seperti halnya dua orang yang menggunakan bahasa yang sama, maka bahasa di sini berfungsi sebagai protokol. Protokol yang digunakan dalam socket dapat menggunakan TCP ataupun UDP.
Penggunaan socket programming memungkinkan adanya komunikasi antara client dan server. Salah satu contoh sederhana penggunaan socket programming adalah pembuatan program untuk chatting. Program tersebut sebenarnya merupakan bentuk aplikasi berupa komunikasi antara client dan server. Ketika seorang user (client) melakukan koneksi ke chat server, program akan membuka koneksi ke port yang diberikan, sehingga server perlu membuka socket pada port tersebut dan "mendengarkan" koneksi yang datang. Socket sendiri merupakan gabungan antara host-address dan port address. Dalam hal ini socket digunakan untuk komunikasi antara client dan server.
Lab Setup
- PC
- Software Java Development Kit / JDK
Cara percobaan/langkah langkah percobaan
1. Siapakan dua buah PC yang akan digunakan dalam praktikum ini, satu PC yang akan menjadi server dan satu lagi yang akan digunakan sebagai Client. Dalam Praktikum ini, saya berpasangan dengan rekan saya
Saya sebagai Server
Rekan saya sebagai Client
2. Pada PC Server, buatlah source code seperti dibawah ini, lalu simpan pada satu folder yang nantinya file TCPEchoServer ini akan dicompile.
import java.io.*;
import java.net.*;
import java.util.*;
public class TCPEchoServer{
private static ServerSocket servSocket;
private static final int PORT = 2480;
public static void main(String args[]){
System.out.println("Opening port...");
System.out.println("Awaiting for data...");
try{
// STEP1: Create ServerSocket object
servSocket = new ServerSocket(PORT);
}
catch(IOException ioEx){
System.out.println("Unable to attach to port!");
System.exit(1);
}
do{
handleClient();
}while(true);
}
private static void handleClient(){
Socket link = null; // STEP 2
try{
link = servSocket.accept(); // STEP 2
Scanner input = new Scanner(link.getInputStream()); // STEP 3
PrintWriter output = new PrintWriter(link.getOutputStream(), true); // STEP 3
int numMessages = 0;
String message = "";
do{
message = input.nextLine(); // STEP 4
if(!message.equals("QUIT")){
System.out.println("Message received -> " + message);
numMessages++;
output.println("Message " + numMessages + ": " + message);
}
}while(!message.equals("QUIT"));
output.println(numMessages + " messages received."); // STEP 4
}
catch(IOException ioEx){
ioEx.printStackTrace();
}
finally{
try{
System.out.println("\n* Closing connection... *");
link.close(); // STEP 5
System.out.println("Waiting new connection...");
}
catch(IOException ioEx){
System.out.println("Unable to disconnect");
System.exit(22);
}
}
}
}
3. Pada PC Client, buatlah source code seperti di bawah ini. Perhatikan pada penggalan source code host = InetAddress.getByName("USER"); "USER" yang ada di dalam tanda kurung tersebut diganti dengan alamat IP Address PC anda, untuk mengetahui IP Address PC anda ketik pada Command Prompt ifconfig.
import java.io.*;
import java.net.*;
import java.util.*;
public class TCPEchoClient{
private static InetAddress host;
private static final int PORT = 2480;
public static void main(String args[]){
try{
host = InetAddress.getByName("USER");
}
catch(UnknownHostException uhEx){
System.out.println("Host ID not found!");
System.exit(1);
}
accessServer();
}
private static void accessServer(){
Socket link = null; // STEP 1
try{
link = new Socket(host, PORT); // STEP 1
Scanner input = new Scanner(link.getInputStream()); // STEP 2
PrintWriter output = new PrintWriter(link.getOutputStream(), true); // STEP 2
// Set up stream for keyboard entry...
Scanner userEntry = new Scanner(System.in);
String message, response;
do{
System.out.print("Client> Enter message: ");
message = userEntry.nextLine();
output.println(message); // STEP 3
if(!message.equals("QUIT")){
response = input.nextLine(); // STEP 3
System.out.println("\nServer> " + response);
}
}while(!message.equals("QUIT"));
response = input.nextLine(); // STEP 3
System.out.println(response);
}
catch(IOException ioEx){
ioEx.printStackTrace();
}
finally{
try{
System.out.println("\n* Closing connection... *");
link.close(); // STEP 4
}
catch(IOException ioEx){
System.out.println("Unable to disconnect!");
System.exit(1);
}
}
}
}
/*
NOTE: Bila program client ini dijalankan tanpa program server sudah berjalan terlebih dahulu, maka program client akan crash.
*/
4. Compile dan jalankan program TCPEchoServer terlebih dahulu pada PC server
5. Selanjutnya, pada PC Client, compile dan jalankan program TCPEchoClient. Terlihat antara PC Server dan Client sudah saling terhubung dengan adanya instruksi enter message pada PC Client
6. Masukkan pesan yang akan dikirimkan ke PC server
7. Lihatlah pada PC server, pesan yang dikirimkan dari PC Client akan berhasil diterima oleh PC Server
Tabel Checklist
No | Elemen Kompetensi | Checklist |
1. | Membuat program Client-Server TCP dengan menggunakan bahasa pemograman Java | √ |
Tidak ada komentar:
Posting Komentar