Anda di halaman 1dari 5

PRAKTIKUM 1

JAVA NETWORKING
CONNECTION ORIENTED (TCP)

A. TUJUAN PEMBELAJARAN

1. Mahasiswa mengetahui cara penggunaan protokol TCP Java pada sebuah program
2. Mahasiswa dapat membuat aplikasi client server dengan protokol TCP

B. DASAR TEORI

TCP (Transmission Control Protokol) merupakan protokol standar yang banyak digunakan.
TCP akan membuat setup koneksi dengan soket tujuan terlebih dulu. Setelah koneksi terbentuk,
maka tidak perlu lagi mengirimkan informasi soket pengirim ketika pengiriman data. Ini karena
jalur antara pengirim dan penerima sudah tercatat di dalam soket. Koneksi yang terbentuk pada
TCP bersifat dua arah (bidirectional).
TCP melakukan transmisi data per segmen, artinya paket data dipecah dalam jumlah yang
sesuai dengan besaran paket, kemudian dikirim satu persatu hingga selesai. Agar pengiriman data
sampai dengan baik, maka pada setiap paket pengiriman, TCP akan menyertakan nomor seri
(sequence number). Pada sisi soket penerima, paket-paket data ini akan disimpan, diurutkan
kembali, dan akhirnya digabungkan kembali menjadi data besar.
TCP adalah protocol yang reliable yang senantiasa menunggu konfirmasi dari pihak soket
penerima (soket penerima harus mengirim balik sebuah sinyal ACKnowledge dalam satu periode
yang ditentukan). Bila pada waktunya sang penerima belum juga memberikan ACK, maka terjadi
“ time out “ yang menandakan pegiriman paket gagal dan harus diulang kembali.
Konsekuensinya adalah TCP menimbulkan overhead lalulintas jaringan yang tinggi.

1
Di Java diimplementasikan dengan class Socket dan ServerSocket. Kelas java.net.socket
mewakili socket, dan kelas java.net.serversocket menyediakan mekanisme untuk program server
untuk mendengarkan klien dan membangun koneksi dengan mereka.
Langkah-langkah berikut terjadi ketika membangun koneksi TCP antara dua komputer
menggunakan soket:
• Server menginstansiasi sebuah object ServerSocket, beserta port number yang
digunakan untuk komunikasi.
• Server memanggil method accept() dari ServerSocket class. Method ini menunggu
hingga client terhubung dengan server pada port yang digunakan.
• Setelah server aktif dan menunggu client yang akan terhubung, Client
menginstansiasi sebuah object Socket. Pada object ini dispesifikasikan nama server
dan port yang digunakan.
• Konstruktor dari class Socket akan menghubungkan client pada server sesuai nama
server dan port yang telah dispesifikasikan.
• Jika berhasil terhubung, maka client dapat berkomunikasi dengan server.
• Pada sisi server, method accept() memberikan return value berupa socket baru pada
server yang terhubung dengan socket client.
• Setelah koneksi berhasil, komunikasi dapat terjadi menggunakan I / O stream.
Setiap socket memiliki dua stream, yaitu OutputStream dan InputStream.
• OutputStream klien terhubung ke server InputStream
• InputStream klien terhubung ke OutputStream server.

C. TUGAS PENDAHULUAN

1. Buatlah artikel yang berisi tentang penggunaan TCP pada aplikasi.

D. PERCOBAAN

Langkah-langkah percobaan :
Langkah 1: Buatlah File ServerTCP.java
public class ServerTCP {

2
public static void main(String[] args){
ServerSocket serverSocket;
int port = 2306;
int timeOut = 60000;

try {
//init ServerSocket
serverSocket = new ServerSocket(port);

//set server timeout


serverSocket.setSoTimeout(timeOut);

//waiting for client


System.out.println("Waiting for client on port ");
Socket server = serverSocket.accept();

//getting Input Stream


System.out.println("Connected to client "
+ server.getRemoteSocketAddress()); //get client Socket
Address
DataInputStream in = new
DataInputStream(server.getInputStream());

//write client message


System.out.println("Client says"
+ in.readUTF());

//getting output stream


DataOutputStream out = new
DataOutputStream(server.getOutputStream());
out.writeUTF("Thank yout for connecting to "
+ server.getLocalSocketAddress() //get server socket
Address and send to client
+ "\nGoodBye!");

//closing server
server.close();
} catch (IOException ex) {
System.out.println("Error");
}
}
}

Langkah 2: Buatkah File ClientTCP.java


public class ClientTCP {
public static void main(String args[]){
String serverName = "localhost";
int port = 2306;

try{
System.out.println("Connecting to "
+ serverName

3
+ " on port "
+ port);
//create socket and connect to server
Socket client = new Socket(serverName, port);

System.out.println("Just connected to "


+ client.getRemoteSocketAddress());

//create stream to send data to server


OutputStream outToServer = client.getOutputStream();
DataOutputStream out = new DataOutputStream(outToServer);

out.writeUTF("Hello, I am "
+client.getLocalSocketAddress());

//read InputStream from server


InputStream inFromServer = client.getInputStream();
DataInputStream in = new DataInputStream(inFromServer);

//read server message


System.out.println("Server says "
+ in.readUTF());

client.close();
}catch(IOException e){
System.out.println(e);
}
}
}

Langkah 3: Running ServerTCP.java

Langkah 4: Running ClientTCP.java


Output Screen Client

4
Output Screen Server

E. LATIHAN

Modifikasi aplikasi ServerTCP dan ClientTCP sehingga user aplikasi dapat mengirimkan pesan

sesuai inputan user.

F. TUGAS

Modifikasi Aplikasi Client Server TCP sehingga user dapat mengirimkan pesan secara terus
menerus.

Lampiran
Cara memasukkan input!
//input user
System.out.println("Enter your message: ");
Scanner scanner = new Scanner(System.in);
String strInput = scanner.nextLine();

G. LAPORAN RESMI

Kumpulkan hasil Percobaan, Latihan dan Tugas di atas dan tambahkan analisa untuk tiap
percobaan, latihan, dan tugas yang telah dibuat.

Anda mungkin juga menyukai