TCP (Transfer Control Protocol) SOCKET PROGRAMMING

dokumen-dokumen yang mirip
Network Programming 2010 Pertemuan-4. Pemrograman Socket. Husni. Husni.trunojoyo.ac.id Komputasi.wordpress.

MENGGUNAKAN TCP SOCKET. Oleh: M. Ghazali a.k.a. ghanoz 2480

UDP (User Datagram Protocol) SOCKET PROGRAMMING

Socket pada UDP. Husni Husni.trunojoyo.ac.id Komputasi.wordpress.com

Pemrograman Socket menggunakan UDP

PRAKTIKUM 10 DATAGRAM SOCKET PROGRAMMING

PERCOBAAN 6 Pemrograman Socket Transport Control Protocol (TCP)

SERVER socket CLIENT socket bind pengalamatan recvfrom sendto close close Gambar. Algorithma pemrograman datagram socket Pada socket datagram algoritm

Pemrograman Socket dengan C

PRAKTIKUM SOCKET PROGRAMMING (TCP dan UDP)

PEMROGRAMAN SOCKET LANJUTAN

Konsep Socket. Interface (API). API didefinisikan sebagai suatu kumpulan instruksi

NETWORK PROGRAMMING. Yuliana Setiowati Politeknik Elektronika Negeri Surabaya D4 PENS-ITS

Pemrograman Jaringan 6.

A. TUJUAN PEMBELAJARAN

A. TUJUAN : Dapat mengimplementasi-kan kelas-kelas Java yang digunakan dalam pemrogaman jaringan.

PERCOBAAN IV Socket Programming User Datagram Protocol (UDP)

Network Programming 2010 Jaringan & Aplikasinya. Husni Husni.trunojoyo.ac.id

Pemrograman Jaringan

Pemrograman Socket menggunakan TCP

Pemrograman Socket TCP dan Socket UDP

Protokol. Pemrograman Client/Server dengan Java Socket. Protokol TCP/IP. Tipe pemrograman jaringan. Java Socket

Riwayat Pendidikan: SDK Lemuel II, Pos Pengumben, Jakarta Barat SMPK Lemuel, Pos Pengumben, Jakarta Barat SMUN 78, Kemanggisan, Jakarta Barat

PEMROGRAMAN JARINGAN

PRAKTIKUM 9 STREAM SOCKET PROGRAMMING

Membuat Aplikasi Chatting Dengan Java

Connection Oriented. Kholid F.

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

10.1 Konsep dasar jaringan

BAB II LANDASAN TEORI

Percabangan dan Perulangan

Topik. Stream I/O Cara menggunakan Stream Hierarchy Java I/O Membaca File Menulis File Menghapus File Cara membaca isi Direktori dalam file

IMPLEMENTASI TCP/IP UNTUK MEMBUAT SERVER DATABASE ACCESS ABSTRAK

Pemrograman Jaringan

Pemrograman Jaringan 9. Connectionless Oriented Programming

Perulangan, Percabangan, dan Studi Kasus

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

EL-695 KEAMANAN SISTEM INFORMASI

Tipe Data, Variabel, Input/Output

2 TIPE DATA DAN VARIABEL

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. mengangkat kasus dan penggunaan teknologi yang berbeda-beda, pada table 2.1

BAB II VARIABEL DAN TIPE DATA

Penerapan Algoritma Kriptografi RSA dalam Pengiriman Data Melalui Socket Berbasis TCP/IP

LAPORAN RESMI ADMINISTRASI & MANAGEMENT JARINGAN. PRAKTIKUM 3 Pemrograman Socket dengan TCP

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

IMPLEMENTASI APLIKASI CHEPPYCHAT UNTUK JARINGAN KOMPUTER PADA LOCAL AREA NETWORK

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

Percabangan & Perulangan

BAB III ANALISA DAN DESAIN SISTEM

Materi 7 Layer 4 Transport

BAB Argument Command-Line dan System Properties

Percabangan & Perulangan

PENGGUNAAN PROXY SEBAGAI ACCOUNT MANAGER DALAM SUATU ISP

Sistem Terdistribusi 4

Badiyanto, S.Kom., M.Kom. PBO java

PRAKTIKUM 7 DASAR INPUT OUTPUT

Network Programming oleh : Yuliana Setiowati

DAFTAR ISI. Kata Pengantar...i. Daftar Gambar...ix. Daftar Tabel...xi Latar Belakang Rumusan Masalah Batasan Masalah...

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

2.1. Sistem Komunikasi

IF PEMROGRAMAN LANJUT EXCEPTION. Oleh : Andri Heryandi, M.T.

Bahasa C-M6 By Jamilah, Skom 1

Pemrograman Lanjut Class, Instance Variable dan Method PTIIK

BAB 12 MANIPULATION FILE

Baca Tulis File. Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah:

Tipe Data dan Operator

I/O (Input dan Output)

Struktur Kontrol Pemrograman Java : PERCABANGAN

Sistem Terdistribusi

MODUL 11 J2ME (Java 2 Micro Edition)

Perulangan / Looping

Pemrograman I Bab III Tipe Data, Variabel, dan Operasi Perhitungan. Adam Mukharil Bachtiar, S.Kom. Universitas Komputer Indonesia

PRAKTIKUM 8 FILE INPUT OUTPUT

TUGAS PENDAHULUAN MODUL I PERKENALAN MIKU, COMPILER BAHASA C, DAN STANDARD INPUT-OUTPUT

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. pernah dilakukan oleh beberapa penulis. tentang membangun aplikasi chat berbasis android.

Mobile Computing Tugas Individu 1

TCP DAN UDP. Budhi Irawan, S.Si, M.T

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

VARIABEL & TIPE DATA PEMROGRAMAN C++

PEMROGRAMAN JARINGAN MODUL 3 STREAM

APLIKASI CHAT ANTAR PC

I. Dasar Teori. Process dan Thread

BAB 3 PERANCANGAN SISTEM. Perancangan aplikasi meliputi server, pengajar dan mahasiswa. Server akan

BAB XII OPERASI FILE

TIPE DATA Pertemuan (K-03/L-03)

IKG2I4 / Software Project I

Pemrograman JAVA INPUT-OUTPUT

SEKUEN, PERCABANGAN & PENGULANGAN

Di dunia free software,

Java Basic. Variabel dan Tipe Data. Lokasi di dalam memori komputer yang digunakan untuk menyimpan suatu informasi (nilai)

DASAR PEMROGRAMAN JAVA. Astrid Lestari Tungadi, S.Kom., M.TI.

BAB 2 LANDASAN TEORI

Sejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs.

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014

A. Judul Percobaan/praktikum Tipe Data, Keyword, Variabel, Operator dan Teknik Konfersi

J2ME GUI dan Interkoneksi Client Server

Transkripsi:

TCP (Transfer Control Protocol) SOCKET PROGRAMMING TCP menyediakan layanan transfer yang dapat diandalkan dengan mengirimkan paket datagrams per kelompok antar server dan client dengan pemeriksaan. Keuntungan TCP: - Mampu menangani paket yang hilang - Mampu menangani kedatangan paket ganda. - Dapat mengatasi penerimaan paket secara beriringan. - Menyediakan alur penerimaan paket. - Data yang diterima dapat diepercaya dan diandalkan. Kelemahan TCP : - Waktu lebih lama. - Paket yang dikirim besar. Fungsi socket protocol TCP 1. socket(af_inet, SOCK_STREAM, 0), berfungsi untuk membuat socket dan parameter family yang digunakan adalah AF_INET yaitu internet protocol dan socket yang digunakan adalah SOCK_STREAM yang berfungsi untuk membuka socket pada TCP. 2. htonl(), meng-convert unsigned integer ke network byte order. 3. inet_ntoa(), ntoa singkatan 'network to ascii', nilai return-nya berupa string dari alamat yang dilewatkan. 4. inet_addr(), meng-convert string menjadi network byte order. 5. bind(), digunakan pada pihak server, untuk membuka 'port' komunikasi. 6. write(), send(), bertugas mengirimkan data. 7. read(), recv(), bertugas menerima data. 8. connect(), digunakan pada pihak client, untuk mengadakan koneksi ke server. 9. listen(), menunggu koneksi socket. 10. accept(), menerima koneksi socket. 11. close() dan shutdown(), digunakan untuk menutup atau mengakhiri koneksi. Pemrograman Jaringan TCP Socket Programming 1

Diagram Alur Socket Programming dengan UDP Pemrograman Jaringan TCP Socket Programming 2

Program TCP Socket dengan Bahasa C Listing TCPServer.c: /* TCPserver.c */ #include <stdio.h> #include <string.h> #include <unistd.h> #include <signal.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #define KONEKSI_MAKSIMAL 10 int main (int argc, char *argv[]) struct sockaddr_in alamat_serv; struct sockaddr_in alamat_clie; unsigned no_port; int socketfd; if (argc!= 2) fprintf (stderr, "gunakan: %s <nomor_port>\n", argv[0]); no_port = atoi (argv[1]); socketfd = socket (AF_INET, SOCK_STREAM, 0); /* untuk membersihkan child process, yang telah selesai */ signal(sigchld, SIG_IGN); /* kita reset terlebih dahulu variable alamat_serv */ bzero (&alamat_serv, sizeof(alamat_serv)); alamat_serv.sin_family = AF_INET; alamat_serv.sin_port = htons (no_port); /* macro INADDR_ANY menghasilkan current ip */ alamat_serv.sin_addr.s_addr = htonl (INADDR_ANY); /* buka port */ if (bind (socketfd, (struct sockaddr *)&alamat_serv, sizeof (struct sockaddr)) < 0) fprintf (stderr, "maaf ya, tidak bisa memasang port!\n"); printf ("serverteman menunggu teman datang...\n"); /* menuggu koneksi yang masuk, * koneksi maksimal dilayani sebanyak KONEKSI_MAKSIMAL */ Pemrograman Jaringan TCP Socket Programming 3

listen (socketfd, KONEKSI_MAKSIMAL); while(1) int client_size = sizeof (struct sockaddr_in); int newfd; /* menerima koneksi yang datang */ newfd =accept (socketfd, (struct sockaddr *)&alamat_clie, &client_size); if(newfd == -1) perror ("accept"); /* jika terjadi error akan looping lagi */ continue; /* mengetahui siapa yang mengadakan koneksi */ printf("teman dari %s telah datang\n", inet_ntoa (alamat_clie.sin_addr)); /* fork mengasilkan nilai return 0 pada child process, pada parent process, fork() menghasilkan nilai pid dari child yang diciptakan*/ if (!fork ()) /* child process */ /* peringatan!, variabel buffer hanya menampung 255 karakter */ char buffer[256]; sprintf (buffer, "Halo Teman, selamat datang di Server.Teman\n"); /* kirim pesan */ if (send (newfd, buffer, strlen (buffer), 0) == -1) perror ("send"); continue; close (newfd); exit (0); else /* parent process, disini tidak dibutuhkan newfd, jadi sebaiknya ditutup. parent process akan looping lagi untuk menerima client yang lain*/ close (newfd); return 0; Pemrograman Jaringan TCP Socket Programming 4

Listing TCPClient.c : /* TCPclient.c */ #include <stdio.h> #include <string.h> #include <unistd.h> #include <signal.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <netinet/in.h> int main (int argc, char *argv[]) struct sockaddr_in alamat_ku; struct sockaddr_in tujuan; struct hostent *host_server; int socketfd, connect_status, baca; int no_port; char buffer[256]; if (argc!= 3) fprintf (stderr, "gunakan: %s <alamat server > <nomor_port>\n", argv[0]); if ((socketfd = socket(af_inet, SOCK_STREAM, 0)) < 0) fprintf (stderr, "tidak bisa memasang socket!\n"); if ((host_server = gethostbyname(argv[1])) == NULL) fprintf (stderr, "Nama host mungkin salah :)\n"); no_port = atoi(argv[2]); bzero (&tujuan, sizeof(tujuan)); tujuan.sin_family = AF_INET; tujuan.sin_port = htons (no_port); memcpy ((char *)&tujuan.sin_addr.s_addr, host_server- >h_addr_list[0], host_server->h_length); if ((connect_status = connect (socketfd, (struct sockaddr *)&tujuan, sizeof(tujuan))) < 0) fprintf(stderr, "%s: tidak dapat melakukan koneksi\n", argv[0]); Pemrograman Jaringan TCP Socket Programming 5

while((baca = recv(socketfd, buffer, strlen(buffer), 0)) > 0) printf("%s", buffer); close (socketfd); return 0; Pemrograman Jaringan TCP Socket Programming 6

Program TCP Socket dengan Bahasa JAVA Listing TCPEchoServerA.JAVA : //Server that echoes back client's messages. //At end of dialogue, sends message indicating number of //messages received. Uses TCP. import java.io.*; import java.net.*; import java.util.*; public class TCPEchoServerA private static ServerSocket servsock; private static final int PORT = 1234; public static void main(string[] args) "Opening port...\n"); servsock = new ServerSocket(PORT); //Step 1. catch(ioexception ioex) "Unable to attach to port!"); System. do handleclient(); while (true); private static void handleclient() Socket link = null; //Step 2. link = servsock.accept(); //Step 2. Scanner input = new Scanner(link.getInputStream());//Step 3. PrintWriter output = new PrintWriter( link.getoutputstream(),true); //Step 3. int nummessages = 0; String message = input.nextline(); //Step 4. while (!message.equals("***close***")) "Message received."); nummessages++; output.println("message " + nummessages + ": " + message); //Step 4. message = input.nextline(); output.println(nummessages + " messages received.");//step 4. Pemrograman Jaringan TCP Socket Programming 7

catch(ioexception ioex) ioex.printstacktrace(); finally "\n* Closing connection... *"); link.close(); //Step 5. catch(ioexception ioex) "Unable to disconnect!"); System. Listing TCPEchoClientA.JAVA : import java.io.*; import java.net.*; import java.util.*; public class TCPEchoClientA private static InetAddress host; private static final int PORT = 1234; public static void main(string[] args) host = InetAddress.getLocalHost(); catch(unknownhostexception uhex) "Host ID not found!"); System. accessserver(); private static void accessserver() Socket link = null; //Step 1. link = new Socket(host,PORT); //Step 1. Scanner input = new Scanner(link.getInputStream()); //Step 2. PrintWriter output = new PrintWriter( link.getoutputstream(),true); //Step 2. //Set up stream for keyboard en... Pemrograman Jaringan TCP Socket Programming 8

Scanner useren = new Scanner(System.in); String message, response; do System.out.print("Enter message: "); message = useren.nextline(); output.println(message); //Step 3. response = input.nextline(); //Step 3. "\nserver> "+response); while (!message.equals("***close***")); catch(ioexception ioex) ioex.printstacktrace(); finally "\n* Closing connection... *"); link.close(); //Step 4. catch(ioexception ioex) "Unable to disconnect!"); System. Pemrograman Jaringan TCP Socket Programming 9