TCP Socket Programming
INTRODUCTION
Introduction Aplikasi di Jaringan, transaksinya didasarkan pada konsep client-server. Sebuah atau beberapa client meminta/request pelayanan ke server Aplikasi client-server menggunakan protocol transport untuk saling berinteraksi
Introduction Ketika proses interaksi terjadi, suatu aplikasi harus memberikan informasi secara detail tentang : - Informasi tentang apakah dia client atau server - Pengirim memberikan informasi tentang data yang dikirim - Penerima memberikan informasi tentang dimana data diletakkan, dll
Introduction
Konsep Socket Antarmuka (interface) antara program aplikasi dengan protocol komunikasi pada suatu sistem operasi disebut Application Program Interface (API) API didefinisikan sebagai suatu kumpulan instruksi yang mendukung proses interaksi antara suatu perangkat lunak dengan suatu protocol yang digunakan.
Konsep Socket Pada mesin keluarga Linux, socket terintegrasi dengan I/O sehingga aplikasi yang berkomunikasi dengan socket, cara kerjanya sama dengan suatu aplikasi yang mengakses peralatan I/O. Oleh karena itu, untuk memahami cara kerja socket pada Linux, sebelumnya harus juga memahami fasilitas I/O pada Linux.
Konsep Socket
Konsep Socket Pada suatu aplikasi berkomunikasi, awalnya aplikasi membuat socket baru, maka pada aplikasi tersebut akan diberikan nomer yang digunakan sebagai referensi socket Jika ada suatu sistem yang menggunakan nomer referensi socket tersebut, maka akan terjalin suatu jaringan komunikasi antar komputer sebaik transfer data local.
Konsep Socket
Konsep Socket Untuk berkomunikasi dengan server, client harus tahu nomor IP server begitu juga nomor port yang dituju, nomor port menunjukkan service yang dijalankan. Contoh : port 23 untuk Telnet Server, port 25 untuk Mail Server dan port 80 untuk Web Server
Konsep Socket Dalam hal ini aplikasi di client sudah mengetahui port yang akan dituju. Contoh : Program aplikasi di client yang meminta service di server adalah ftp, telnet, ssh. Untuk melihat service bisa dilihat pada file/etc/services
Konsep Socket Program yang berjalan di server, akan berjalan sepanjang waktu (disebut sebagai daemon) sampai mesin/service dimatikan, menunggu request dan client sesuai service yang diminta.
Konsep Socket
Procedure Utama Socket Client Meminta layanan. Langkah : A. Membuka koneksi client ke server, yang di dalamnya adalah : - membuat socket dengan perintah socket() - melakukan pengalamatan ke server - menghubungi server dengan connect()
Procedure Utama Socket B. Melakukan komunikasi (mengirim dan menerima data), dengan menggunakan perintah write() dan read() C. Menutup hubungan
Procedure Utama Socket Server Menyediakan layanan. Langkah : A. melakukan prosedur pembukaan koneksi yang didalamnya berupa langkah-langkah : Membuat socket, Mengikat socket, Menyiapkan Socket, menerima koneksi, pengalamatan socket B. Looping utama adalah menerima koneksi, dan melakukan komunikasi data (mengirim dan menerima)
Tipe Tipe Socket
Stream Socket Ciri Khas : Connection oriented socket Client dan server harus saling berkomunikasi sebelum transfer data. Pada stream socket dalam melakukan koneksi salah satu prosedur yang penting adalah accept(), yang dipakai untuk menerima koneksi dari client
UDP Socket Ciri Khas : connectionless socket Jika client mengirimkan data ke server, data tersebut ada kemungkinan sampai ke server atau tidak. Untuk itu client menunggu sinyal ‘error free’ dari client.
UDP Socket Ciri Khas : Jika client tidak menerima sinyal ‘error free’ dalam suatu kurun waktu, maka client akan mengirimkan lagi data tersebut. Contoh aplikasi yang menggunakan datagram socket adalah tftp dan bootp.
Fungsi Rutin Socket
Accept :Menerima datangnya koneksi yang dibuat oleh socket Bind : Menandai Nama local dari socket yang tidak berlabel Connect : Inisialisasi Socket tertentu
WINSOCK
Winsock Winsock merupakan standar API jaringan. Ini dibuat untuk standar interface programming TCP/IP pada semua versi dari Microsoft Windows termasuk Windows XP, Windows 2000, Windows NT, Windows 98/95, Windows CE, dan Windows 3.x
Demo Project 1 Tujuan Untuk mengetahui IP Address dan Nama Komputer pengguna yang terhubung ke dalam Jaringan
Demo Project 1 Model Sistem Untuk membuat project ini, mula kita harus menentukan apa yang akan dibuat. Untuk project kali ini jelas memakai WinSock.
Show Hostname & IP Address Demo Project 1 Start Check WinSock DLL Get Host name Get IP Address Show Hostname & IP Address End
Winsock IMPLEMENTASI PROGRAM Penggunaan Visual C++
Winsock
Winsock
Winsock
Winsock
Winsock
Winsock
Winsock
Winsock
Winsock
Winsock
Winsock
Winsock
DEMO PROJECT 2
Mencari IP Address 1. Perancangan Sistem Tujuan Untuk mengetahui IP Address suatu host yang diinputkan Model Sistem Prinsip kerja untuk membuat project ini yang berbasis aplikasi WinSock, dapat dilihat pada Next Slide :
Convert to String Variabel Mencari IP Address Model Diagram untuk Project 2 Check Input On Edit Box Get IP Address (host name as input) Convert to String Variabel Show IP Address
Mencari IP Address Mula-mula dilakukan pengecekan inputan data berupa nama host. Setelah nama host-nya di dapat, kita akan melakukan look-up pada DNS untuk mendapatkan IP Address dari nama host sebagai parameter input.
Mencari IP Address
Mencari IP Address 2. Pada MFC AppWizard, saat step 1 pilih aplikasi Dialog based dan step 2 tandai opsi Windows Sockets sehingga kita dapat mengakses Class Winsock. Kemudian tekan tombol Finish, maka pada akhir AppWizard muncul tampilan seperti gambar berikut:
Mencari IP Address
Mencari IP Address 3. Untuk tampilan desain GUI dapat dilihat modelnya seperti pada Gambar berikut
Mencari IP Address 4. Setelah itu, buka Class Wizard dengan memilih menu View -> Class Wizard atau tekan Ctrl+W
Mencari IP Address
Mencari IP Address
Mencari IP Address
Mencari IP Address
Mencari IP Address 5. Sekarang kita, memasuki session coding, pada saat Tombol Check di klik, maka kita akan melakukan pengecekan IP Address dari nama host yang dimasukkan oleh user. Arahkan mouse ke tombol check, klik ganda tombol tersebut sehingga akan muncul pop up, lalu gantilah nama fungsi tersebut dengan onCheck dan code-nya seperti berikut
Mencari IP Address
Mencari IP Address void CCheckIPAddressDlg::OnCheck() { // TODO: Add your control notification handler code here LPHOSTENT lHOSTENTRY; m_cCheckBtn.EnableWindow(FALSE); CWaitCursor wait; UpdateData(TRUE);
Mencari IP Address if(m_sHostName.IsEmpty()) { AfxMessageBox("Please, Insert Data Example: wwww.yahoo.com"); m_cCheckBtn.EnableWindow(TRUE); return; } lHostEntry=gethostbyname(m_sHostName);
Mencari IP Address if(lHostEntry==Null) { AfMessageBox("Error to convert Host Name to IP Address!!"); m_cCheckBtn.EnableWindow(TRUE); return; } m_sIPAddress=inet_ntoa(*(LPIN_ADDR) *lHostEntry> h_addr_list); UpdateData(FALSE);
Mencari IP Address 6. Sekarang Debuglah program kita dengan klik menu Build>Rebuild All, setelah running program kita dengan klik Build>Execute