coding aplikasi chatting dengan java

A. Listing program server dengan nama Badaichat.java:

package badaichat;
import java.net.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Badaichat extends JFrame{
JLabel lblPesan = new JLabel (“Kirim Pesan :”);
TextArea taPesan=new TextArea(4,50);
JLabel lblBalasan = new JLabel (“Dari Teman :”);
TextArea taTeman=new TextArea(4,50);
JButton btnSend=new JButton(“Send”);
JButton btnClose=new JButton(“Close Connection”);
ServerSocket sktServer;
Socket conClient;
ObjectInputStream fromClient;
ObjectOutputStream toClient;
String s=null;
Container c;
public void sendData(){
try{
toClient=new ObjectOutputStream(conClient.getOutputStream());
toClient.writeObject(taPesan.getText());
System.out.println(taPesan.getText());
taPesan.setText(“”);
taPesan.requestFocus();

}
catch (EOFException ex){
;
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, “Koneksi Belum Tersambung ! “,
“Pesan”, JOptionPane.ERROR_MESSAGE);
}
catch(SocketException se){
JOptionPane.showMessageDialog(null, “Koneksi Putus !”,
“Pesan”, JOptionPane.ERROR_MESSAGE);
}
catch(IOException io){
System.out.println(“IO Exception”);
}
}//end void sendData()

public void closeConnection(){
try{
//toClient.writeObject(“bye”);
conClient.close();
conClient=null;
System.exit(0);
}//end try
catch (EOFException ex){
;
}
catch(IOException io){
System.out.println(“IO Exception”);
}
}//end closeConnection();

public Badaichat()throws IOException{
c = getContentPane();
c.setLayout (new FlowLayout());
c.add (lblPesan);
c.add (taPesan);
c.add (lblBalasan);
c.add (taTeman);
c.add (btnSend);
c.add (btnClose);

btnSend.addActionListener (new ActionListener(){
public void actionPerformed(ActionEvent evt){
sendData();
}//end void actionPerformed
});

btnClose.addActionListener (new ActionListener(){
public void actionPerformed(ActionEvent evt){
closeConnection();
}//end void actionPerformed
});

}//end public Badaichat()

public void terimaKoneksi() throws IOException{
//sktServer=new ServerSocket(2000,1000);
sktServer=new ServerSocket(2000);
conClient=sktServer.accept();
//tunggu sampai client masuk melalui port 2000

//System.out.println(“Tersambung dengan client ” +
//conClient.getInetAddress());

JOptionPane.showMessageDialog(null, “Tersambung dengan Client ” +
conClient.getInetAddress().toString(), “Pesan”,
JOptionPane.INFORMATION_MESSAGE);
sktServer.close();

try{

fromClient=new ObjectInputStream(conClient.getInputStream());
do{
try{
s=(String) fromClient.readObject();
//System.out.println(s);
taTeman.setText(s);
}//end try
catch(ClassNotFoundException ex){
System.out.println(“Error”);
}//end catch
}//end do
while (!s.equals(“bye”));
}//end try
catch (EOFException ex){
;
}
catch (IOException io) {
System.out.println(“IO Exception”);
}
finally {
System.out.println(“Closed”);
conClient.close();
}//end finally
}//end void terimaKoneksi()

public static void main(String[] args) throws IOException
{
Badaichat svr = new Badaichat();
svr.setTitle(“Chatting – Server”);
svr.setLocation (300,300);
svr.setSize(500,250);
svr.setVisible(true);
svr.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}//end void
});
//supaya GUI muncul dulu & bisa terima koneksi, maka
//method terimaKoneksi() diletakkan di sini
svr.terimaKoneksi();

}//end main
}//end class

B. Listing program client dengan nama clientchat.java:

package clientchat;
import java.net.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class clientchat extends JFrame{
JLabel lblPesan = new JLabel (“Kirim Pesan :”);
TextArea taPesan=new TextArea(4,50);
JLabel lblBalasan = new JLabel (“Dari Teman :”);
TextArea taBalasan=new TextArea(4,50);
JButton btnSend=new JButton(“Send”);
JButton btnOpen=new JButton(“Open Connection”);
JButton btnClose=new JButton(“Close Connection”);
Socket con=null;
ObjectOutputStream toServer;
ObjectInputStream fromServer;
String balasan=null;
String inputIPServer;
public void openConnection(){
try{
//input dialog u/ memasukkan IP Address Chat Server
inputIPServer=JOptionPane.showInputDialog(“Inputkan IP Server”);
//koneksi ke port 2000 pada IP Address Server
con=new Socket(InetAddress.getByName(inputIPServer),2000);
toServer=new ObjectOutputStream(con.getOutputStream());
}//end try
catch (EOFException ex){
;
}
catch(IOException io){
System.out.println(“IO Exception”);
io.printStackTrace();
}
}//end openConnection();
public void sendData(){
try{
toServer.writeObject(taPesan.getText());
taPesan.setText(“”);
taPesan.requestFocus();
}
catch (EOFException ex){
;
}
catch(IOException io){
System.out.println(“IO Exception”);
io.printStackTrace();
}
}//end void sendData()
public void getData(){
try{
fromServer=new ObjectInputStream(con.getInputStream());
balasan=(String) fromServer.readObject();
//System.out.println(balasan);
taBalasan.setText(balasan);
}
catch (ClassNotFoundException ex){
System.out.println(“Error”);
}
catch (EOFException ex){
;
}
catch(IOException io){
System.out.println(“IO Exception”);
io.printStackTrace();
}
}//end void getData()
public void closeConnection(){
try{
toServer.writeObject(“bye”);
con.close();
con=null;
}//end try
catch (EOFException ex){
;
}
catch(IOException io){
System.out.println(“IO Exception”);
io.printStackTrace();
}
}//end closeConnection();
public clientchat(){
Container c = getContentPane();
c.setLayout (new FlowLayout());
c.add (lblPesan);
c.add (taPesan);
c.add (lblBalasan);
c.add (taBalasan);
c.add (btnOpen);
c.add (btnSend);
c.add (btnClose);

btnOpen.addActionListener (new ActionListener(){
public void actionPerformed(ActionEvent evt){
openConnection();
}//end void actionPerformed
});

btnSend.addActionListener (new ActionListener(){
public void actionPerformed(ActionEvent evt){
sendData();
getData();
}//end void actionPerformed
});

btnClose.addActionListener (new ActionListener(){
public void actionPerformed(ActionEvent evt){
closeConnection();
}//end void actionPerformed
});

//pack();
}//end public ChatClient()

public static void main(String[] args)
{
clientchat klien = new clientchat();
klien.setTitle(“Chatting – Client”);
klien.setLocation (300,300);
klien.setSize(500,250);
klien.setVisible(true);
klien.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}//end void
});

}//main

}//class

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: