1. TUGAS PEMROGRAMAN JARINGAN
MEMBUAT APLIKASI SERVER
Tambahkan perintah untuk mengimpor beberapa pustaka yang diperlukan pada
file Main.Java
Package modul1server;
Import java.net.*;
Import java.io.*;
Import java.util.*;
Tambahkan program pada fungsi main dalam kelas main
Public static void main(string[] args)
{
ServerSocket echoServer = null;
String line;
DataInputStream is;
PrintStream os;
Socket socketKlien = null;
Try
{
echoServer = new ServerSocket(2222);
}
Catch (IOException e)
{
System.out.println(e);
}
While (true)
{
Try
{
System.out.println(
“Menunggu permintaan koneksi dari klien”);
SocketKlien = echoServer.accpet();
System.out.println(“Permintaan koneksi diterima”);
Is = new DataInputStream(SocketKlien.getInputStream());
2. Os = new PrintStream(SocketKlien.getOutputStream());
Os.println(“Server: Halo, anda terhubung ke server echo pada” new Date());
While (true)
{
Line = is.readLine();
System.out.println(“Klien: “+line);
Os.println(“Server: “+line);
Os.flush();
If (line.equals(“quit”))
{
Os.println(“Server: koneksi ditutup”);
}
}
socketKlien.close();
}
Catch (IOException e) {
System.out.println(“Terdapat kesalahan pada soket”);
}
Catch (java.lang.NullPointerException e) {
System.out.println(“Klien memutus koneksi”);
}
System.out.println(“Klien memutus koneksi”);
}
System.out.println(“Koneksi ditutup”);
}
}
}
MEMBUAT APLIKASI KLIEN
Komponen yang digunakan:
Komponen Properti Isi
jFrame Title Klien
jButton Variabel Name jButtonKonek
Text Hubungkan
jLabel Variable Name jLabelKonek
Text Tidak terhubung ke server
jTextField Variable Name jTextFieldPesan
Text (kosongkan)
jButton Variable Name jButtonKirim
3. Text Kirim
jLabel Variable Name jLabelRespon
Text Respon server
Tambahkan perintah untuk mengimpor bebrapa pustaka yang diperlukan pada file
FrameUtama.java
Package modul1Klien;
Import java.io.*;
Import java.net.*;
Tambahkan definisi variable yang akan dipakai dibawah header kelas
FrameUtama
Public class FrameUtama extends javax.swing.Jframe {
Socket socketKlien = null;
String line;
DataInputStream is;
PrintStream os;
Event handler ActionPerformed untuk jButtonKonek
Private void jButtonKonekActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handlin code here;
If (jButtonKonek.getText().equals(“Hubungkan”)) {
Try {
socketKlien = new Socket(“localhost”, 2222);
is = new DataInputStream(socketKlien.getInputStream());
os = new PrintStream(socketKlien.getOutputStream());
jLabelKonek.setText(“Terhubung ke server”);
jButtonKonek.setText(“Putuskan”);
jLabelRespon.setText(is.readLine());
}
Catch (IOException e) {
jLabelKonek.setText(“Tidak dapat menghubungi server”);
}
}
4. Else {
Try {
Is.close();
Os.close();
socketKlien.close();
jLabelKonek.setText(“Tidak terhubung ke server”);
jButtonKonek.setText(“Hubungkan”);
}
Catch (IOException e) {
jLabelKonek.setText(“Ada error”);
}
}
}
Event handler ActionPerformed untuk jButtonKonek
Private void jButtonKirimActionPerformed(java.net.event.ActionEvent evt)
{
//TODO add your handling code here:
If (jTextFieldPesan.getText().equals(“”)) {
jLabelKonek.setText(“Tidak dapat mengirim pesan kosong”);
}
Else {
If((jButtonKonek.getText().equals(“Putuskan”)
&& is != null)) {
Os.println(jTextFieldPesan.getText());
Os.flush();
jTextFieldPesan.setText(“”);
}
Else {
jLabelKonek.setText(“Tidak dapat mengirim ke server”);
jButtonKonek.setText(“Hubungkan”);
}
Try {
If (is != null)
jLabelRespon.setText(is.readLine());
}
Catch (IOException e) {
System.err.println(“Ada error”);