Rabu, 13 April 2016

Aplikasi server dan client pada JAVA TEXTPAD

Contoh aplikasi server dan client pada JAVA TEXTPAD


Program JAVA TEXTPAD InfoClient


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

public class InfoClient {
private final int INFO_PORT=50000;
private final String TargetHost = "localhost";
private final String QUIT = "QUIT";



/**Creates a New Instance of InfoClient**/
public InfoClient() {
    try {

/**Siapkan input stream dari standart input (keyboard)**/
BufferedReader inFromUser =
new BufferedReader(new
InputStreamReader(System.in));

/*Buat Koneksi Socket ke Server dan port yang dituju*/
Socket clientSocket = new
Socket(TargetHost, INFO_PORT);

/*Siapkan output stream ke socket*/
DataOutputStream outToServer =
new DataOutputStream(
    clientSocket.getOutputStream());

/*Siapkan input stream dari socket*/
BufferedReader inFromServer =
new BufferedReader(
new InputStreamReader(
    clientSocket.getInputStream()));

/*Tampilkan informasi Welcome dari server
oleh karena method readLine() akan membaca satu baris string
yang diakhir dengan karakter ENTER, maka perlu diberikan 3
pemanggilan method readLine() untuk membaca 3 baris pesan
Welcome yag dikirim dari server*/

System.out.println(inFromServer.readLine());
System.out.println(inFromServer.readLine());
System.out.println(inFromServer.readLine());
System.out.println("");
boolean isQuit = false;
while (!isQuit) {

/*menunggu masukkan perintah dari user*/
System.out.print("Perintah Anda : ");
String cmd = inFromUser.readLine();

/*konversi ke upper dan cek apakah perintah quit yang diketikkan
jika QUIT, beri nilai true untuk isQuit agar looping !isQuit selesai*/
cmd = cmd.toUpperCase();
if (cmd.equals(QUIT)) {
    isQuit = true;
}

/*kirim perintah yang dimasukkan ke server dan diakhiri denga karakter ENTER,
karena pada server data dari client dibaca dengan method readLine() untuk
membaca satu baris string sampai dengan ENTER */
outToServer.writeBytes(cmd + "\n");

/*block reading ... client harus menunggu balasan dari server*/
String result = inFromServer.readLine();
System.out.println("Dari Server : " + result);
}

/*tutup semua stream dan koneksi sockett*/
outToServer.close();
inFromServer.close();
clientSocket.close();
}
catch (IOException ioe) {
    System.out.println("Error: " + ioe);
}
catch (Exception e) {
    System.out.println("Error: " + e);
}
}

/*program utama InfoClient*/
public static void main(String[] args) {
    new InfoClient();
}
}





Program JAVA TEXTPAD InfoServer

import java.net.*;
import java.io.*;
import java.util.*;
public class InfoServer {
private final int INFO_PORT=50000;
private String datafromClient;

/**InfoServer Constractor*/
public InfoServer() {
BufferedReader inFromClient;
DataOutputStream outToClient;
Socket serverSocket;
try {

/* bind port 50000 ke alamat lokal*/
ServerSocket infoServer =
new ServerSocket(INFO_PORT);
System.out.println("Server telah siap...");

/*lakukan perulangan tanpa henti sampai client memberikan perintah QUIT*/
while (true) {

/*masuk ke mode listening, server siap menerima permintaan dari client*/
serverSocket = infoServer.accept();
System.out.println("Ada clien" + "yang terkoneksi!");

/*buat input stream dari socket dan juga sekaligus konversi dari byte stream
  ke character stream (InputStreamReader) BufferedReader akan memudahkan
  dalam pengolahan data karakter*/
inFromClient =
new BufferedReader(
new InputStreamReader(
serverSocket.getInputStream()));

/*buat output stream ke socket*/
outToClient =
new DataOutputStream(
serverSocket.getOutputStream());

/*tulis welcome ke client*/
outToClient.writeBytes("InfoServer versi 0.1\n" + "hanya untuk testing..\n" + "Silahkan berikan TIME|NET|QUIT\n");

/*lakukan perulangan sampai client mengirimkan perintah QUIT*/
boolean isQUIT = false;
while (!isQUIT) {

/*baca data dari client*/
datafromClient = inFromClient.readLine();

if(datafromClient.startsWith("TIME")) {
outToClient.writeBytes(new
Date().toString() + "\n");

} else if (datafromClient.startsWith("NET")) {
outToClient.writeBytes(
InetAddress.getByName("localhost").toString() + "\n");

} else if (datafromClient.startsWith("QUIT"))

{
isQUIT = true;
}
}
outToClient.close();
inFromClient.close();
serverSocket.close();
System.out.println("Koneksi client tertutup..");
}
}
catch (IOException ioe) {
System.out.print("error: " + ioe);
}
catch (Exception e) {
System.out.print("error: " + e);
}
}

/*program utama*/
public static void main(String[] args) {
new InfoServer();
}
}


Pertama run terlebih dahulu InfoServer, kemudian run InfoClient.

InfoServer


 InfoClient

0 komentar:

Posting Komentar