- UDPServer.java
- UDPClient.java
- UdpChat.java
- SendThread.java
Untuk menjalankan program/aplikasi ini, dimulai dengan mengaktifkan server terlebih dahulu. Yaitu menjalankan file UdpChat.java, Berikut contoh perintahnya:
Penjelasan:
argumen -s menandakan untuk mengaktifkan server
port yang digunakan oleh server adalah 9090
Kemudian perintah berikut untuk menjalan client pertama sebagai berikut:
Kemudian untuk client kedua.
Penjelasan:
argumen -c berarti adalah untuk menjalan client.
kemudian nama user/client (tidak boleh sama).
alamat IP (disini dipakai localhost) misal: 127.0.0.1 dll
port server (harus sama dengan server yang baru saja diaktifkan)
port client masing-masing (setiap client harus berbeda port nya)
Lalu untuk melihat list user yang online atau offline
Sekarang akan mencoba mengirim pesan dari user satu ke user lain yang sedang online.
User lain menanggapi pesan
Misalkan user/client pertama akan offline,
Untuk melihat status on/off pada tabel user.
Sekarang user/client kedua ingin mengirim pesan ke user pertama yang sudah offline, pesan tersebut akan tersimpan di server untuk kemudian disampaikan kepada user pertama jika sudah online lagi.
Apabila user pertama tadi sudah online lagi, pesan offline dari user kedua akan diterima
Contoh kasus:
berikut potongan program untuk menyimpan pesan offline.
directory server.
directory client.
argumen -s menandakan untuk mengaktifkan server
port yang digunakan oleh server adalah 9090
Kemudian perintah berikut untuk menjalan client pertama sebagai berikut:
Kemudian untuk client kedua.
argumen -c berarti adalah untuk menjalan client.
kemudian nama user/client (tidak boleh sama).
alamat IP (disini dipakai localhost) misal: 127.0.0.1 dll
port server (harus sama dengan server yang baru saja diaktifkan)
port client masing-masing (setiap client harus berbeda port nya)
Lalu untuk melihat list user yang online atau offline
Sekarang akan mencoba mengirim pesan dari user satu ke user lain yang sedang online.
Misalkan user/client pertama akan offline,
Sekarang user/client kedua ingin mengirim pesan ke user pertama yang sudah offline, pesan tersebut akan tersimpan di server untuk kemudian disampaikan kepada user pertama jika sudah online lagi.
Contoh kasus:
- Bagaimana kerja server untuk bisa menyimpan pesan yang dikirimkan salah satu user/client kepada user yang sedang offline?
berikut potongan program untuk menyimpan pesan offline.
public static void saveMessage(String output) throws IOExceptionberikut class potongan kode untuk membaca pesan offline
{
String[] values = output.split(" ");
String toClient = values[1];
String fromClient = values[2];
int index = 7 + values[1].length()+ values[2].length();
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date date = new Date();
String message = fromClient + ": <" +dateFormat.format(date) + "> " + output.substring(index);
/* Each client get its own txt file */
String filename = toClient+".txt";
File txt = null;
BufferedWriter writer = null;
try
{
writer = new BufferedWriter(new FileWriter(filename, true));
}
/* If file doesn't exist, create a new one */
catch (FileNotFoundException e)
{
txt = new File(filename);
writer = new BufferedWriter (new FileWriter(txt, true));
}
writer.write(message);
writer.newLine();
writer.close();
}
public static void readMessage(String client) throws IOExceptionfile text tersebut akan otomatis bernama sesuai nama user yang sedang offline.
{
String filename = client+".txt";
/* check if txt file exists, if yes, send everything in it to client and delete file */
try
{
BufferedReader in = new BufferedReader(new FileReader(filename));
ArrayList<Serializable> list = hm.get(client);
//Get the ip of current key
InetAddress ip = (InetAddress) list.get(1);
//get the port of the current key
int p = Integer.parseInt((String) list.get(2));
String output = "Kamu mempunyai pesan";
byte[] sendData = new byte[1024];
sendData = output.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, ip, p);
try
{
serverSocket.send(sendPacket);
}
catch (IOException e)
{
e.printStackTrace();
}
String message;
while ((message = in.readLine()) != null)
{
sendData = message.getBytes();
sendPacket = new DatagramPacket(sendData, sendData.length, ip, p);
try
{
serverSocket.send(sendPacket);
}
catch (IOException e)
{
e.printStackTrace();
}
}
in.close();
File txt = new File (filename);
txt.delete();
}
/* If not, do nothing */
catch (FileNotFoundException e)
{
//nothing
}
}
- Program/Aplikasi Chatting ini terdapat 4 file yang berada dalam satu directory, misalkan file server dan file client dipisah ke folder yang berbeda, apakah aplikasi ini masih bisa berjalan?
directory server.
directory client.
- Bagaimana jika menggunakan aplikasi ini dari komputer client yang berbeda? bukan dari satu komputer.
Syaratnya komputer harus sudah terhubung dan terkoneksi lalu untuk alamat IP bisa menyesuaikan. Pada saat login ke server, client harus mendeklarasikan argumen menggunakan alamat IP nya sendiri, bukan IP localhost, dengan begitu akan bisa berkomunikasi dengan komputer satunya.
Source Code.
Kelompok:
Asri Ansar (08052931)
Tangguh Sanjaya (08052932)
Dodo Suratmo (08052950)
Nova Tri Cahyono (091051014)
Cukamnoto Hariyadi (121052129)
Wintoko (121053085)
Source Code.
UDPServer.java
UDPClient.java
SendThread.java
UdpChat.java
Kelompok:
Asri Ansar (08052931)
Tangguh Sanjaya (08052932)
Dodo Suratmo (08052950)
Nova Tri Cahyono (091051014)
Cukamnoto Hariyadi (121052129)
Wintoko (121053085)
Anda sedang membaca artikel tentang Aplikasi Chatting dengan Java berbasis Command Line dan anda bisa menemukan artikel Aplikasi Chatting dengan Java berbasis Command Line ini dengan url http://www.nova13.com/2012/11/aplikasi-chatting-java.html, Anda boleh menyebar luaskannya atau mengcopy paste-nya jika artikel Aplikasi Chatting dengan Java berbasis Command Line ini sangat bermanfaat bagi teman-teman Anda, namun jangan lupa untuk meletakkan link postingan Aplikasi Chatting dengan Java berbasis Command Line sebagai sumbernya.
If you Like this, please share it?