Socket Programming - 1 (TCP)

Slides:



Advertisements
Presentasi serupa
Try, Catch, Finally Throws
Advertisements

Kelas A & B Jonh Fredrik Ulysses STMIK PALANGKARAYA - JFU
TCP mengatur aliran data gram dari lapisan di atasnya (lapisan aplikasi) hingga lapisan IP, sebagaimana datagram yang datang dari lapisan IP hingga ke.
JAVA Network Programming. Apa itu JAVA? ● Bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun ● Dikembangkan.
Java Progamming Operasi I/O
Pemrograman Berorientasi Objek
Pemrograman Jaringan Socket Programming Aurelio Rahmadian.
Komunikasi antar Proses
FIREWALL.
Sistem Komunikasi.
Pemrograman Client Server
Pengenalan Pemrograman Jaringan Materi 1 Pemrograman Jaringan Dosen: Eko Prasetyo Teknik Informatika UMG 2012.
Sistem Terdistribusi 06 – Client Server Oleh : Muh. Ary Azali.
MATA KULIAH : PEMROGRAMAN 3 JAVA PROGRAMMING (JSE)
INTERNETWORKING PROTOCOL
Dasar exception handling
Mendapatkan input dari keyboard
Mendapatkan Input dari Keyboard
Struktur Kode Aplikasi Java (1)
As’ad Djamalilleil Function (method) As’ad Djamalilleil
(TRANSMISSION CONTROL PROTOCOL/INTERNET PROTOCOL)
Socket Programming Hernando Ivan Teddy S.Kom. Pertemuan 6 Pemrograman Jaringan STMIK GI MDP PALEMBANG 2013.
- PERTEMUAN 4 - PERULANGAN
Pertemuan : Object Oriented Programming
Socket Programming Isbat Uzzin.
Pengembang aplikasi memiliki kemampuan untuk memperbaiki beberapa parameter TCP, seperti buffer dan maksimum ukuran segmen maksimum Socket Programming.
TRANSPORT LAYER PROTOCOLS ( TCP DAN UDP )
UDP Socket Programming
1 Pertemuan 1 Pendahuluan Matakuliah: H0483 – Network Programming Tahun: 2005 Versi: 1.0.
UDP.
DASAR SOCKET PROGRAMMING
- PERTEMUAN 8- NETWORK PBO. Pengantar Java mengijinkan anda untuk mempermudah mengembangkan aplikasi yang mengerjakan berbagai pekerjaan melalui jaringan.
TCP Socket Programmning
TCP/IP SOCKET Sujoko.
Dasar exception handling
Try, Catch, Finally Throws
Penanganan Eksepsi.
Command line argument.
Exception Handling (Penanganan Error)
SISTEM TERDISTRIBUSI CSG3L3 ~SPO~
Java Remote Object Invocation (RMI)
Jaringan.
Input/output dan Kelas File
File Stream.
INTERNETWORKING PROTOCOL
Zaini, PhD Jurusan Teknik Elektro Universitas Andalas 2012
Yuliana Setiowati Politeknik Elektronika Negeri Surabaya
Layanan Pengiriman Pada Jaringan
LATIHAN SOAL JARINGAN KOMPUTER
Transport Layer Electronic Engineering Polytechnic Institut of Surabaya – ITS Kampus ITS Sukolilo Surabaya
Networking Belajar bagaimana menerapkan sebuah MIDlet yang mempunyai kemampuan koneksi ke dalam jaringan Membuat koneksi HTTP, HTTP Redirects, HTTPS,
Aplikasi berbasis teks
Koneksi Database Java dan Access (ODBC)
Input/output dan Kelas File
Pengaksesan Jaringan (Connection)
TCP & UDP.
Command line argument.
Tugas Minggu Ke 9 PBO Siti Halisah
Socket Programming - 1 (TCP)
As’ad Djamalilleil Function (method) As’ad Djamalilleil
Socket Programming - 2 (UDP)
Exception Handling (Penanganan Error)
TRANSPORT LAYER PROTOKOL
Transmission Control Protocol dan Internet Protocol TCP/IP
Application Layer Pada TCP/IP.
Komunikasi antar Proses
INTERNETWORKING Didi Juardi,ST.,M.Kom.
TCP Socket Programmning
UDP Socket Programming
TCP Socket Programming
Transcript presentasi:

Socket Programming - 1 (TCP) As’ad Djamalilleil http://kampusku.web.id asad.kom@gmail.com

Contoh Komunikasi Jaringan Server [192.168.10.1] Program Server Program Client 1 Client [192.168.10.2] Program Client 2 Program Client 3

Komunikasi jaringan memiliki 2 endpoint atau titik komunikasi Setiap komputer memiliki 65535 buah nomor port Program komputer yang ingin dikomunikasikan lewat jaringan komputer harus terhubung ke salah satu nomor port Nomor port yang digunakan harus “diikat” ke sebuah socket Apabila ada data yang diterima, maka sistem operasi dapat memberikan data tersebut ke program yang tepat sesuai dengan socket yang digunakan

Socket Socket adalah satu endpoint dari hubungan komunikasi dua arah antara dua program yang berjalan di jaringan Socket terikat pada sebuah nomor port sehingga layer TCP dapat mengenali aplikasi mana yang dikirimi data Endpoint adalah sebuah kombinasi dari alamat IP dan nomor port Setiap koneksi TCP dapat secara unik dikenali dari dua endpoint-nya Dengan demikian kita dapat memiliki banyak koneksi antara host dan server

Pada umumnya, setiap server memiliki socket yang terikat dengan nomor port tertentu Server menunggu sambil mendengarkan/listening lewat socket terhadap permintaan/request dari client untuk terhubung

Client mengetahui nama host dari komputer server dan nomor port yang digunakan server untuk listening Untuk meminta koneksi ke server, client mencoba untuk “bertemu” dengan server pada komputer dan port dari server Client juga perlu untuk mengenalkan dirinya kepada server sehingga dapat terhubung dengan nomor port yang akan digunakan saat terhubung

Pada saat server menerima permintaan client untuk terhubung, server mendapatkan sebuah socket baru yang terikat dengan port lokal yang sama dan juga memiliki remote endpoint yang menyimpan alamat dan port dari client Server membuat socket baru agar tetap dapat mendengarkan permintaan dari socket awal, sementara melayani client yang telah terkoneksi

Apabila terkoneksi, sebuah socket juga akan dibuat di client, dan dapat digunakan untuk berkomunikasi dengan server Pada akhirnya, server dan client dapat berkomunikasi lewat socket-nya masing-masing

Paket java.net Paket java.net mendukung dua macam protokol jaringan yang umum: TCP (Transmission Control Protocol), digunakan untuk komunikasi antar dua aplikasi. TCP biasanya digunakan pada protokol TCP/IP UDP (User Datagram Protocol), protokol connection-less yang memungkinkan paket data dikirimkan antar aplikasi

Di dalam paket java.net memiliki class Socket dan ServerSocket Class Socket merupakan implementasi satu sisi dari koneksi dua arah antara program Java kita dengan program lain pada jaringan Class ServerSocket merupakan implementasi sebuah socket dimana server-server dapat gunakan untuk mendengarkan dan menerima koneksi ke client-client

Method Class ServerSocket Keterangan public ServerSocket(int port) throws IOException Mencoba untuk membuat socket server yang terikat dengan port tertentu. Exception terjadi jika port tersebut telah digunakan oleh aplikasi lain public ServerSocket(int port, int backlog) throws IOException Mirip dengan konstruktor di atas, parameter backlog menentukan seberapa banyak client yang disimpan pada daftar tunggu public ServerSocket(int port, int backlog, InetAddress address) throws IOException Mirip dengan konstruktor di atas, parameter InetAddress menentukan alamat IP lokal untuk diikat. InetAddress digunakan untuk server yang dapat memiliki beberapa alamat IP, memungkinkan server untuk menentukan alamat IP mana yang bertugas menerima request dari client public ServerSocket() throws IOException Membuat socket server yang tidak terikat. Bila menggunakan konstruktor ini, gunakan method bind() untuk mengikat socket server

Method Keterangan public int getLocalPort() Memberikan nomor port yang socket server gunakan untuk mendengar. Method ini berguna jika nilai 0 digunakan untuk nomor port pada konstruktor dan membiarkan server yang mencari port public Socket accept() throws IOException Menunggu permintaan client. Method ini terblok sampai ada client yang terhubung ke server pada port yang sesuai atau socket kehabisan waktu (time out), dengan asumsi nilai time-out telah ditentukan menggunakan method setSoTimeOut(). Bila tidak maka method ini terblok terus menerus public void setSoTimeout(int timeout) Menentukan nilai time-out untuk berapa lama socket server menunggu client setelah method accept() dipanggil public void bind(SocketAddress host, int backlog) Mengikat socket ke server dan port tertentu pada objek SocketAddress. Gunakan method ini jika objek ServerSocket dibuat menggunakan konstruktor tanpa argumen

Method Class Socket Method Keterangan public Socket(String host, int port) throws UnknownHostException, IOException Method ini mencoba untuk terhubung ke server tertentu pada port tertentu. Jika konstruktor tidak memberikan exception, koneksi sukses dan client terhubung ke server public Socket(InetAddress host, int port) throws IOException Method ini identik dengan konstruktor sebelumnya, kecuali host ditunjuk oleh sebuah objek InetAddress public Socket(String host, int port, InetAddress localAddress, int localPort) throws IOException. Terhubung ke host dan port tertentu, membuat sebuah socket pada host lokal pada alamat dan port tertentu public Socket(InetAddress host, int port, InetAddress localAddress, int localPort) throws IOException. Method ini identik dengan konstuktor sebelumnya, kecuali host ditunjuk oleh sebuah objek InetAddress, bukan String public Socket() Membuat sebuah socket yang tidak terhubung. Gunakan method connect() untuk menghubungkan socket ini ke sebuah server

Method Keterangan public void connect(SocketAddress host, int timeout) throws IOException Method ini menghubungkan socket ke host tertentu. Method ini dibutuhkan hanya jika objek Socket dibuat lewat konstruktor tanpa argumen public InetAddress getInetAddress() Method ini memberikan alamat dari komputer lain yang terhubung dengan socket ini public int getPort() Memberikan nomor port yang terhubung dengan socket dari komputer remote public int getLocalPort() Memberikan nomor port yang terhubung dengan socket pada komputer lokal public SocketAddress getRemoteSocketAddress() Memberikan alamat dari socket remote

Method Keterangan public InputStream getInputStream() throws IOException Memberikan aliran input dari socket. Aliran input terhubung ke aliran output dari socket remote public OutputStream getOutputStream() throws IOException Memberikan aliran input dari socket. Aliran output terhubung ke aliran input dari socket remote public void close() throws IOException Menutup socket, menjadikan objek socket ini tidak lagi dapat dihubungkan ke server manapun

Method Class InetAddress Keterangan static InetAddress getByAddress(byte[] addr) Memberikan sebuah objek InetAddress berdasarkan alamat IP mentah static InetAddress getByAddress(String host, byte[] addr) Membuat sebuah InetAddress berdasarkan pada nama host dan alamat IP yang diberikan static InetAddress getByName(String host) Menentukan alamat IP dari host, berdasarkan nama host String getHostAddress() Memberikan alamat IP berupa string String getHostName() Memberikan nama host dari alamat IP ini static InetAddress InetAddress getLocalHost() Memberikan nama host lokal String toString() Mengubah alamat IP ke string

Contoh aplikasi client import java.net.*; import java.io.*; public class TCPClient { public static void main (String args[]) { //arguments supply message and hostname of destination Socket s = null; try{ int serverPort = 7896; s = new Socket(args[1], serverPort); DataInputStream in = new DataInputStream(s.getInputStream()); DataOutputStream out = new DataOutputStream(s.getOutputStream()); out.writeUTF(args[0]); // UTF is a string encoding String data = in.readUTF(); System.out.println("Received: " + data); }

catch (UnknownHostException e){ System.out.println("Sock:" + e.getMessage()); } catch (EOFException e){ System.out.println("EOF:" + e.getMessage()); catch (IOException e){ System.out.println("IO:" + e.getMessage()); finally { if(s!=null) try { s.close(); /*close failed*/

Contoh aplikasi server import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[]) { try{ int serverPort = 7896; ServerSocket listenSocket = new ServerSocket(serverPort); while(true) { Socket clientSocket = listenSocket.accept(); Connection c = new Connection(clientSocket); } catch(IOException e){ System.out.println("Listen :"+e.getMessage());

class Connection extends Thread { DataInputStream in; DataOutputStream out; Socket clientSocket; public Connection(Socket aClientSocket) { try { clientSocket = aClientSocket; in = new DataInputStream(clientSocket.getInputStream()); out =new DataOutputStream(clientSocket.getOutputStream()); this.start(); } catch(IOException e){ System.out.println("Connection:" + e.getMessage());

public void run(){ try { // an echo server String data = in.readUTF(); System.out.println(data); out.writeUTF(data); } catch(EOFException e){ System.out.println("EOF:" + e.getMessage()); catch(IOException e){ System.out.println("IO:" + e.getMessage()); finally { try { clientSocket.close(); catch (IOException e){ /*close failed*/