laporan chatting server dan client

16

Click here to load reader

Upload: trilestari08

Post on 08-Jul-2015

144 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Laporan chatting server dan client

PRAKTEK PEMROGRAMAN JARINGAN KOMPUTER

PROGRAM APLIKASI CHATTING SERVER DAN CLIENT

DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN

JAVA

Oleh :

Nama : Tri Lestari

NIM : 061130701310

Kelas : 6 CD

JURUSAN TEKNIK KOMPUTER

POLITEKNIK NEGERI SRIWIJAYA

PALEMBANG

2014

Page 2: Laporan chatting server dan client

PROGRAM APLIKASI CHATTING SERVER DAN CLIENT

DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN

JAVA

A. Program Chatting Server

Listing Program Chatting untuk Server:

import java.io.*;import java.net.*;import java.util.Scanner;

public class Server {

private static ServerSocket serverSocket;private static final int PORT = 1111;

public static void main(String[] args) throwsIOException {

try {serverSocket = new ServerSocket(PORT);System.out.println("Server berjalan,

menunggu client...");} catch (IOException ioEx) {

System.out.println("\nTidak dapat mensetupport!");

System.exit(1);}do {

//Menunggu koneksi dari client...Socket client = serverSocket.accept();

Page 3: Laporan chatting server dan client

System.out.println("\nClient baruditerima.\n");

//Buat thread untuk menangani komunikasidengan client ini

//lewatkan socket yang relevan kecontructor dari thread ini

ClientHandler handler = newClientHandler(client);

handler.start(); //menjalankan threadyang telah dibuat

} while (true);}

}

class ClientHandler extends Thread {

private Socket client;private Scanner input;private PrintWriter output;private Scanner userEntry;

public ClientHandler(Socket socket) {//Set up referensi ke socket yang

berasosiasi...client = socket;

try {input = new

Scanner(client.getInputStream());

Page 4: Laporan chatting server dan client

output = newPrintWriter(client.getOutputStream(), true);

userEntry = new Scanner(System.in);} catch (IOException ioEx) {

//ioEx.printStackTrace();}

}

public void run() {String received;String message;do {

//Terima pesan dari client pada inputstream socket...

received = input.nextLine();System.out.println(received);System.out.print("");

System.out.print("server: ");message = userEntry.nextLine();

//Kirim pesan (message)ke client pada outputstream socket...

//Terima respon dari client pada stream inputsocket...

output.println(message);

//Ulangi sampai client mengirimkan pesan'KELUAR'...

Page 5: Laporan chatting server dan client

} while (!received.equals("KELUAR"));

try {if (client != null) {

System.out.println("Menutupkoneksi...");

client.close();}

} catch (IOException ioEx) {

System.out.println("Penutupan koneksigagal!");

}}

}

B. Program Chatting Client

Listing Program Chatting untuk Client:

import java.io.*;import java.net.*;import java.util.Scanner;

public class Client {

private static InetAddress host;private static final int PORT = 1111;

public static void main(String[] args) {try {

Page 6: Laporan chatting server dan client

host = InetAddress.getLocalHost();} catch (UnknownHostException uhEx) {

System.out.println("\nHost ID tidakditemukan!\n");

System.exit(1);}sendMessages();

}

private static void sendMessages() {Socket socket = null;try {

socket = new Socket(host, PORT);Scanner networkInput = new

Scanner(socket.getInputStream());PrintWriter networkOutput = new

PrintWriter(socket.getOutputStream(), true);

//Set up stream untuk masukan darikeyboard...

Scanner userEntry = new Scanner(System.in);String message, response;do {

System.out.print("klien 1: ");message = userEntry.nextLine();

//Kirim pesan (message)ke server padaoutput stream socket...

//Terima respon dari server pada streaminput socket...

networkOutput.println(message);

Page 7: Laporan chatting server dan client

response = networkInput.nextLine();

//Tampilkan respon dari server...System.out.println("\nSERVER> " +

response);} while (!message.equals("KELUAR"));

} catch (IOException ioEx) {//ioEx.printStackTrace();

} finally {try {

System.out.println("\nMenutupkoneksi...");

socket.close();} catch (IOException ioEx) {

System.out.println("Gagal menutupkoneksi!");

System.exit(1);}

}}

}

Page 8: Laporan chatting server dan client

C. Hasil Program Chatting Server

Tampilan hasil program server menunggu client :

Tampilan hasil program ketika server menerima client baru:

Page 9: Laporan chatting server dan client

Tampilan hasil program dengan input obrolan dari client 1, client 2, dan

client 3:

D. Hasil Program Chatting Client

Tampilan hasil program pada client 1:

Page 10: Laporan chatting server dan client

Tampilan hasil program pada client 2:

Tampilan hasil program pada client 3:

Page 11: Laporan chatting server dan client

Tampilan hasil program pada client 1 saat melakukan chatting dengan server:

Tampilan hasil program pada client 2 saat melakukan chatting dengan server:

Page 12: Laporan chatting server dan client

Tampilan hasil program pada client 3 saat melakukan chatting dengan server:

E. Pembahasan Listing Program Server

public class server {

private static ServerSocket serverSocket;

private static final int PORT = 1111;

Kode diatas merupakan perintah agar socket server hanya dapat diakses

oleh sendiri. Port = 1111 merupakan port yang disiapkan pada server diatas.

iniserver merupakan nama kelas program javanya.

public static void main(String[] args) throws IOException {

try {

serverSocket = new ServerSocket(PORT);

System.out.println("Server berjalan, menunggu

client...");

} catch (IOException ioEx) {

System.out.println("\nTidak dapat mensetup port!");

System.exit(1);

Page 13: Laporan chatting server dan client

}

Kode diatas merupakan perintah untuk membuat sebuar socket server

bernama serverSocket. “Server berjalan, menunggu client…” akan muncul ketika

program dijalankan. "\nTidak dapat mensetup port!" akan muncul ketika program

dijalankan saat masih ada program yang sama yang dijalankan.

do {

Socket client = serverSocket.accept();

System.out.println("\nClient baru diterima.\n");

ClientHandler handler = new

ClientHandler(client);

handler.start();

} while (true);

Kode diatas merupakan perintah untuk menunggu client terhubung /

connect pada server. Selama masih ada client yang ingin masuk maka server tetap

bisa menerima client tersebut.

class ClientHandler extends Thread {

private Socket client;

private Scanner input;

private PrintWriter output;

private Scanner userEntry;

public ClientHandler(Socket socket) {

client = socket;

Page 14: Laporan chatting server dan client

try {

input = new Scanner(client.getInputStream());

output = new PrintWriter(client.getOutputStream(), true);

userEntry = new Scanner(System.in);

} catch (IOException ioEx) {

//ioEx.printStackTrace();

Kode diatas merupakan thread untuk mensetup referensi ke socket. Input

merupakan Scanner untuk mendapatkan input. Output merupakan perintah agar

menerima masukan dari keyboard.

public void run() {

String received;

String message;

do {

received = input.nextLine();

System.out.println(received);

System.out.print("");

System.out.print("server: ");

message = userEntry.nextLine();

output.println(message);

} while (!received.equals("QUIT"));

Kode diatas berfungsi untuk menerima dan mengirimkan pesan pada input stream

socket. Program diatas akan terus berjalan selama client tidak mengirimkan pesan

QUIT.

try {

if (client != null) {

Page 15: Laporan chatting server dan client

System.out.println("Menutup koneksi...");

client.close();

}

} catch (IOException ioEx) {

System.out.println("Penutupan koneksi gagal!");

Kode diatas berfungsi untuk mengakhiri program.

F. Pembahasan Listing Program Client

public class Client {

private static InetAddress host;

private static final int PORT = 1111;

public static void main(String[] args) {

try {

host = InetAddress.getLocalHost();

} catch (UnknownHostException uhEx) {

System.out.println("\nHost ID tidak ditemukan!\n");

System.exit(1);

}

sendMessages();

}

Kode diatas merupakan perintah agar socket server hanya dapat diakses

oleh sendiri. Port = 1111 merupakan port yang disiapkan pada server diatas.

client merupakan nama kelas program javanya.

private static void sendMessages() {

Socket socket = null;

Page 16: Laporan chatting server dan client

try {

socket = new Socket(host, PORT);

Scanner networkInput = new Scanner(socket.getInputStream());

PrintWriter networkOutput = new

PrintWriter(socket.getOutputStream(),

true);

Scanner userEntry = new Scanner(System.in);

String message, response;

do {

System.out.print("klien 1: ");

message = userEntry.nextLine();

networkOutput.println(message);

response = networkInput.nextLine();

System.out.println("\nSERVER> " + response);

} while (!message.equals("QUIT"));

Kode diatas merupakan perintah untuk mensetup stream untuk masukan

dari keyboard, yang kemudian di scan oleh scanner UserEntry dan di simpan

dalam string message. Setelah itu program akan mengirimkan pesan ke server dan

menunggu server merespon pesan tersebut. Kode akan berjalan selama message

tidak menampilkan QUIT.

try {

System.out.println("\nMenutup koneksi...");

socket.close();

} catch (IOException ioEx) {

System.out.println("Gagal menutup koneksi!");

System.exit(1);

Kode diatas merupakan perintah untuk mengakhiri program ketika user

akan keluar.