Pemrograman Jaringan : Program Chat Client & Server Sederhana
KODE
PROGRAM
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);
}
}
}
PENJELASAN
PROGRAM
Terdapat sintaks import digunakan untuk memanggil
package yang ada seperti io dan net. Baris program yang terdapat identifier
public digunakan untuk mendefinisikan segala yang dibutuhkan pada class
simpleclient. Mulai dari mendefinisikan class, method serta variable-variabel
yang digunakan. Terdapat variable remote_port yang digunakan untuk menyimpan
nilai yang digunakan alamat port. Baris program try pertama digunakan untuk membuka koneksi ke server pada
port remote. Variabel cl digunakan untuk menyimpan nama pc yang digunakan serta
nomor port yang ingin digunakan. Baris program try yang kedua digunakan untuk
memasukkan inputan agar diperiksa oleh server apakah sesuai atau tidak dengan
yang diminta oleh server.
OUTPUT
PROGRAM
KODE
PROGRAM
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();
}
}
}
PENJELASAN
PROGRAM
Blok listing yang selanjutya berfungsi untuk
mendefinisikan kelas, method dan varibel-variabel yang digunakan untuk kelas
simpleserver. Terdapat variable TESTPORT yang digunakan untuk mendefinisikan
alamat port yang digunakan. Blok listing try pertama di atas digunakan untuk
mengecek server dengan parameter yang digunakan adalah alamat port dari
variable testport. Blok listing try kedua berikut digunakan untuk menerima
alamat port dari client apakah port sesuai atau tidak.
OUTPUT
PROGRAM
0 komentar: