Mar 062013
 

Sample UDP Client Server

Assalamu’ alaikum wr wb

User Datagram Protocol (UDP), adalah salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. Protokol ini didefinisikan dalam RFC 768.

Oke mari langsung saja kita tulis script nya untuk sisi server

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

class UDPServer
{
 public static void main(String args[]) throws Exception
 {
 DatagramSocket serverSocket = new DatagramSocket(9876);
 byte[] receiveData = new byte[1024];
 byte[] sendData = new byte[1024];
 while(true)
 {
 //Deklarasi penerimaan paket
 DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
 serverSocket.receive(receivePacket);
 //Simpan dalam variabel dan cetak
 String sentence = new String( receivePacket.getData());
 System.out.println("RECEIVED: " + sentence);
 //Ambil Default IP yang mengirimkan pesan
 InetAddress IPAddress = receivePacket.getAddress();
 //Ambil port yang mengirimkan data
 int port = receivePacket.getPort();
 //Jadikan huruf besar data yang di terima
 String capitalizedSentence = sentence.toUpperCase();
 //Konvert data yang di terima menjadi byte data
 sendData = capitalizedSentence.getBytes();
 DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
 //Kirim kembali data yang terlah di terima
 serverSocket.send(sendPacket);
 }
 }
}

Sekarang untuk aplikasi client nya

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

class UDPClient
{
 public static void main(String args[]) throws Exception
 {
 //Baca Inputan keyboard
 BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
 //Deklarasi data paket
 DatagramSocket clientSocket = new DatagramSocket();
 //Lokasi server yang akan dikirim data
 InetAddress IPAddress = InetAddress.getByName("localhost");
 //Deklarasi port server
 int port = 9876;
 //Data yang akan di kirim
 byte[] sendData = new byte[1024];
 //data yang di terima dari server
 byte[] receiveData = new byte[1024];
 //Masukkan data darui keyboard ke variabel
 String sentence = inFromUser.readLine();
 try
 {
 //setting timeout
 clientSocket.setSoTimeout(1000);
 //Masukkan ke send data
 sendData = sentence.getBytes();
 //Inisialisasi paket yang di kirim
 DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
 //Kirim paket data
 clientSocket.send(sendPacket);

 //Ambil data yang di kirim oleh server
 DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
 clientSocket.receive(receivePacket);
 //Masukkan data yang di kirim oleh server
 //Konvert dari byte ke string
 String modifiedSentence = new String(receivePacket.getData());
 //Cetak ke layar
 System.out.println("FROM SERVER:" + modifiedSentence);

 }catch (SocketException | SocketTimeoutException EX){;
 System.out.println(EX.getMessage());
 }finally{
 //Tutup UDP
 clientSocket.close();
 }
 }
}

Selamat mencoba semoga membantu

Wassalamu’ alaikum wr wb

Jan 012010
 

Assalamu’ alaikum wr wb

Kali ini saya akan membagikan pengalaman iseng setelah sholat subuh tadi. karena tidaka ada pekerjaan cari deh ide. oh iya bagaimana ya caranya kira – kira untuk membaca serial port di linux. Pasti kalian bertanya – tanya nih buat apa sulit – sulit harus membaca port di linux. Tenang beberapa saat yang lalu saya pernah membuat program SMS getway dengan menggunakan OS Windows, nah kali ini saya pingin membuat program tersebut jalan di linux ubuntu saya.

Pertama kali mari silakan download komponen untuk membaca port disini :

http://java.sun.com/products/javacomm/

Setelah itu anda tinggal extrak hasil download anda. kemudian setting

  1. Copikan comm.jar sudo cp commapi/jar/comm.jar /opt/jdk1.6.0_17/jre/lib/ext/
  2. Copikan javax.comm.properties sudo cp commapi/docs/javax.comm.properties  /opt/jdk1.6.0_17/jre/lib/
  3. Copikan libLinuxSerialParallel.so sudo cp commapi/lib/libLinuxSerialParallel.so /usr/lib/

Dengan asumsi lokasi hasil install java saya ada di /opt/jdk1.6.0_17/

Ok sekarang seting telah selesai tinggal mencoba hasilnya. sekarang buat source seperti berikut ini :

/**
 *
 * @author mbahsomo
 */

import javax.comm.*;
import java.util.Enumeration;

public class ListPorts {
 public static void main(String args[]) {
 Enumeration ports = CommPortIdentifier.getPortIdentifiers();
 while (ports.hasMoreElements()) {
 CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
 String type;
 switch (port.getPortType()) {
 case CommPortIdentifier.PORT_PARALLEL:
 type = "Parallel";
 break;
 case CommPortIdentifier.PORT_SERIAL:
 type = "Serial";
 break;
 default:
 type = "Tidak di ketahui";
 break;
 }
 System.out.println(port.getName() + ": " + type);
 }
 }
}

hasilnya seperti berikut :

/dev/ttyS0: Serial
/dev/ttyS1: Serial
/dev/parport0: Parallel

Bisakan, silakan explorasi.

Wassalamu’ alaikum wr wb