Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Socket Programming - 2 (UDP)

Presentasi serupa


Presentasi berjudul: "Socket Programming - 2 (UDP)"— Transcript presentasi:

1 Socket Programming - 2 (UDP)
As’ad Djamalilleil

2 Datagram Protokol UDP menyediakan sebuah mode dari komunikasi jaringan dimana aplikasi-aplikasi saling mengirimkan paket-paket data yang disebut datagram Datagram adalah sebuah pesan independen yang dikirim lewat jaringan, dimana isi, kedatangan, maupun waktu tibanya tidak dijamin Class DatagramPacket dan DatagramSocket pada paket java.net menerapkan komunikasi datagram menggunakan protokol UDP

3 Class MulticastSocket dapat digunakan untuk mengirimkan DatagramPacket ke banyak penerima yang mendengar lewat MulticastSocket

4 Method class DatagramSocket
Keterangan public DatagramSocket() throws SocketException Membuat socket datagram dan mengikatnya dengan port yang tersedia pada komputer host lokal public DatagramSocket(SocketAddress bindaddr) throws SocketException Membuat socket datagram, diikat ke alamat socket lokal yang ditentukan. Jika alamatnya diisi null, maka yang dibuat adalah socket yang tidak terikat port public DatagramSocket(int port) throws SocketException Membuat socket datagram dan mengikatnya ke port tertentu pada komputer host lokal public DatagramSocket(int port, InetAddress laddr) throws SocketException Membuat socket datagram, diikat ke alamat lokal yang ditentukan. Port local bernilai antara 0 s/d 65535 public void bind(SocketAddress addr) throws SocketException Mengikat DatagramSocket ini ke alamat dan port tertentu. Jika alamat bernilai null, maka sistem akan menggunakan port sementara dan alamat lokal untuk mengikat socket public void connect(InetAddress address, int port) Menghubungkan socket ke alamat remote dari socket ini. Ketika socket terhubung ke alamat remote, packet hanya dikirim atau diterima dari alamat tersebut. Defaultnya, socket datagram tidak terhubung

5 Method Keterangan public void connect(SocketAddress addr) throws SocketException Menghubungkan socket ini ke alamat socket remote (alamat IP dan nomor port) public void disconnect() Memutuskan atau menutup socket public InetAddress getInetAddress() Memberikan alamat dimana socket ini terhubung. Memberikan nilai null jika socket tidak terhubung public int getPort() Memberikan nomor port dimana socket ini terhubung. Memberikan nilai -1 jika socket tidak terhubung public void send(DatagramPacket p) throws IOException Mengirimkan paket datagram dari socket ini. DatagramPacket berisi informasi berupa data yang akan dikirim, panjangnya, alamat IP dari host remote, dan nomor port pada host remote public void receive(DatagramPacket p) throws IOException Menerima paket datagram dari socket ini. Buffer dari DatagramPacket akan terisi dengan data yang diterima. Paket datagram juga berisi alamat IP pengirim, dan nomor port dari komputer pengirim public InetAddress getLocalAddress() Menerima alamat lokal dimana socket terhubung

6 Method class DatagramPacket
Keterangan DatagramPacket(byte[] buf, int length) Membuat objek DatagramPacket untuk menerima paket dengan panjang yang ditentukan DatagramPacket(byte[] buf, int length, InetAddress address, int port) Membuat paket datagram untuk mengirim paket dengan panjang dan nomor port pada host yang ditentukan DatagramPacket(byte[] buf, int length, SocketAddress address) public InetAddress getAddress() Memberikan alamat IP dari komputer ke tujuan pengiriman datagram atau dari mana datagram tersebut diterima public int getPort() Memberikan nomor port pada host remote dimana datagram ini dikirim atau darimana datagram tersebut diterima public byte[] getData() Memberikan data dalam buffer. Data yang diterima atau yang dikirim public int getLength() Memberikan panjang dari data yang dikiirm atau yang diterima

7 Method Keterangan public void setAddress(InetAddress iaddr) Menentukan alamat IP dari komputer dimana datagram akan dikirim public void setPort(int iport) Menentukan nomor port pada host remote dimana datagram akan dikirim public void setSocketAddress(SocketAddress address) Menentukan alamat IP dan nomor port dari host remote dimana datagram akan dikirim public SocketAddress getSocketAddress() Mendapatkan alamat IP dan nomor port dari host remote dimana datagram akan dikirim public void setData(byte[] buf) Mengisi buffer atau paket dengan data yang akan dikirim public void setLength(int length) Menentukan panjang buffer atau paket yang akan dikirim

8 Contoh aplikasi client
import java.net.*; import java.io.*; public class UDPClient{ public static void main(String args[]){ // args give message contents and server hostname DatagramSocket aSocket = null; try { aSocket = new DatagramSocket(); byte[] m = args[0].getBytes(); InetAddress aHost = InetAddress.getByName(args[1]); int serverPort = 6789; DatagramPacket request = new DatagramPacket(m, m.length, aHost, serverPort); aSocket.send(request); byte[] buffer = new byte[128]; DatagramPacket reply = new DatagramPacket(buffer, buffer.length); aSocket.receive(reply);

9 System.out.println("Reply: " + new String(reply.getData()));
} catch (SocketException e){ System.out.println("Socket: " + e.getMessage()); catch (IOException e){ System.out.println("IO: " + e.getMessage()); finally { if(aSocket != null) aSocket.close();

10 Contoh aplikasi server
import java.net.*; import java.io.*; public class UDPServer{ public static void main(String args[]){ DatagramSocket aSocket = null; try{ aSocket = new DatagramSocket(6789); byte[] buffer = new byte[128]; while(true){ DatagramPacket request = new DatagramPacket(buffer, buffer.length); aSocket.receive(request); System.out.println(new String(request.getData())); DatagramPacket reply = new DatagramPacket(request.getData(), request.getLength(), request.getAddress(), request.getPort()); aSocket.send(reply); }

11 } catch(SocketException e){ System.out.println("Socket: " + e.getMessage()); catch(IOException e){ System.out.println("IO: " + e.getMessage()); finally{ if (aSocket != null) aSocket.close();

12 Contoh aplikasi peer-to-peer
import java.net.*; import java.io.*; public class MulticastPeer{ public static void main(String args[]){ // args give message contents & destination multicast group (e.g. " ") MulticastSocket s =null; try { InetAddress group = InetAddress.getByName(args[1]); s = new MulticastSocket(6789); s.joinGroup(group); byte[] m = args[0].getBytes(); DatagramPacket messageOut = new DatagramPacket(m, m.length, group, 6789); s.send(messageOut); byte[] buffer = new byte[128]; for(int i=0; i< 3; i++) { // get messages from others in group

13 DatagramPacket messageIn = new DatagramPacket(buffer, buffer.length);
s.receive(messageIn); System.out.println("Received:" + new String(messageIn.getData())); } s.leaveGroup(group); catch(SocketException e){ System.out.println("Socket: " + e.getMessage()); catch (IOException e){ System.out.println("IO: " + e.getMessage()); finally { if(s != null) s.close();


Download ppt "Socket Programming - 2 (UDP)"

Presentasi serupa


Iklan oleh Google