Friday, May 4, 2007

Pratikum appSocketClient

Sedangkan untuk aplikasi client, berikut adalah tutorial nya :

1. Buat project baru, dengan nama project appSocketClient tanpa main class

2. Buat class baru, dengan cara klik kanan nama project, kemudian pilih new->Java Class, dan beri nama class “appSocketClient” dan package “app.socket”

3. Import beberapa komponen dibawah ini dalam appSocketClient.java :

import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;


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


4. Pada class appSocketClient lakukan perubahan pada nama class, dan tambahkan beberapa deklarasi seperti dibawah ini

Nama class menjadi :

public class appSocketClient extends JFrame implements ActionListener

Deklarasi variabel (dalam class appSocketClient diluar method yg ada didalam class tersebut) :

JLabel text, clicked;
JButton button;
JPanel panel;
JTextField textField;
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;


5. Akan ada error, karena method actionPerformed belum dibuat. Sekarang tambahkan method actionPerformed kedalam class appSocketClient.

public void actionPerformed(ActionEvent event){
Object source = event.getSource();
int i=0,j=0;
if(source == button){
//Send data over socket
String text = textField.getText();
out.println(text);
textField.setText(new String(""));
//Receive text from server
try{
String line = in.readLine();
textField.setText(line);
System.out.println("Text received :" + line);
}catch (IOException e){
System.out.println("Read failed");
System.exit(1);
}
}
}

6. Buat method baru didalam class appSocketClient, untuk membuat objek socket

public void listenSocket(){
//membuat objek socket
try{
socket = new Socket("localhost", 4444);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}catch (UnknownHostException e) {
System.out.println("Unknown host: localhost.eng");
System.exit(1);
} catch (IOException e) {
System.out.println("No I/O");
System.exit(1);
}
}

7. Pada konstruktor (method appSocketClient) dalam class appSocketClient, tambahkan code berikut ini

public appSocketClient() {
text = new JLabel("Text to send over socket:");
textField = new JTextField(20);
button = new JButton("Click Me");
button.addActionListener(this);

panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBackground(Color.white);
getContentPane().add(panel);
panel.add("North", text);
panel.add("Center", textField);
panel.add("South", button);
}

8. Terakhir, tambahkan method main pada class appSocketClient

public static void main(String[] args){
appSocketClient frame = new appSocketClient();
frame.setTitle("Client Program");

WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};

frame.addWindowListener(l);
frame.pack();
frame.setVisible(true);
frame.listenSocket();
}


9. Jalankan aplikasi dengan menekan tombol F6
10. Catatan : jika aplikasi disisi client tidak menemukan server, maka applikasi akan keluar. Sehingga untuk menjalankannya, jalankan terlebih dahulu aplikasi di sisi server, kemudian aplikasi di sisi client.


No comments: