Site Meter

Thursday, June 5, 2014

Pemrograman Jaringan : Stream Socket

Stream socket digunakan untuk sistem komunikasi 2 arah dan menggunakan protokol TCP (Transmission Control Protocol). Contoh aplikasi yang menggunakan stream socket adalah telnet dan HTTP (web browser). TCP menjamin data terkirim secara urutan dan bebas daripada kesalahan (error), sedangkan IP (Internet Protocol) bertugas untuk mengatur lalu-lintas routing.
Proses dalam TCP adalah:

  1. Untuk melakukan sambungan client server, program server seharusnya berjalan terlebih dahulu.
  2. Di sisi server disediakan sebuah socket, yang disebut welcoming socket yang fungsinya untuk mengesan adanya permintaan sambungan daripada client.
  3. Di sisi client terdapatnya client socket. Jika ingin menghubungi server, maka melalui client socket-nya, client membuat sambungan ke welcoming socket milik server, dengan mode three-way handshake.
  4. Setelah welcoming socket menerima sambungan daripada client socket, aplikasi server akan membuat sambungan socket di sisi server. Dengan connection socket ini, client socket dan connection socket berinteraksi antara satu sama lain untuk mengirim dan menerima data. 
Berikut contoh program client server yang menggunakan stream socket yang dibuat dengan bahasa C.

  • Client
/*
** client02.c -- a datagram
*/

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define MYPORT 4950 // no port server yang digunakan

int main(int argc, char *argv[])
{
    int sockfd;
    struct sockaddr_in their_addr; // ip server
    struct hostent *he;
    int numbytes;
    
    if (argc != 3)
    {
        fprintf(stderr,"usage: client hostname message\n");
        exit(1);
    }

    // dpt info tentang host
    if ((he=gethostbyname(argv[1])) == NULL) 
    { 
        perror("gethostbyname");
        exit(1);
    }

    if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) 
    {
        perror("socket");
        exit(1);
    }

    their_addr.sin_family = AF_INET; // host byte order
    their_addr.sin_port = htons(MYPORT); // host to network short
    their_addr.sin_addr = *((struct in_addr *)he->h_addr);
    memset(&(their_addr.sin_zero), '\0', 8); // set semua nilai ke 0

    if ((numbytes=sendto(sockfd, argv[2], strlen(argv[2]), 0, (struct sockaddr *)&their_addr, sizeof(struct sockaddr))) == -1) 
    {
        perror("sendto");
        exit(1);
    }

    printf("Kirim %d byte ke %s\n", numbytes,
    inet_ntoa(their_addr.sin_addr));
    close(sockfd);
    
    return 0;
}

Program ini memberikan paket kepada alamat server yang ditentukan melalui parameter pada saat dijalankan. Didalamnya termasuk membuat socket dengan memanfaatkan system call yang tersedia seperti socket(), listen() dan connect()
  • Server 

/*
** server02.c -- a datagram sockets "server"
*/

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define MYPORT 4950 // no port server
#define MAXBUFLEN 100

int main(void)
{
    int sockfd;
    struct sockaddr_in my_addr; // ip address server
    struct sockaddr_in their_addr; // ip address client
    int addr_len, numbytes;
    char buf[MAXBUFLEN];

    if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) 
    {
        perror("socket");
        exit(1);
    }

    my_addr.sin_family = AF_INET; // host byte order
    my_addr.sin_port = htons(MYPORT); // host to network short
    my_addr.sin_addr.s_addr = INADDR_ANY; // ip address server
    memset(&(my_addr.sin_zero), '\0', 8); // set semua nilai menjadi 0

    if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) 
    {
        perror("bind");
        exit(1);
    }

    addr_len = sizeof(struct sockaddr);

    if ((numbytes=recvfrom(sockfd,buf, MAXBUFLEN-1, 0, (struct sockaddr *)&their_addr, &addr_len)) == -1) 
    { 
        perror("recvfrom");
        exit(1);
    }

    printf("Mendapat paket dari : %s\n",inet_ntoa(their_addr.sin_addr));
    printf("Panjang paket : %d bytes \n",numbytes);
    buf[numbytes] = '\0';
    printf("Isi paket : \"%s\"\n",buf);
    close(sockfd);

    return 0;
}

Pada program server menggunakan socket untuk mendapatkan file descriptor dan menghitung jumlah paket dan memberikan informasi tersebut pada saat dijalankan, serta menggunakan memanfaatkan banyak system call seperti socket(), bind(), listen(), connect(), dll. 

Langkah-langkah menjalankan program
  1. Simpan program client dengan nama client.c dan program server dengan nama server.c
  2. Lakukan installasi gcc. Petunjuk instalasinya ada disini.
  3. Lakukan Kompilasi Program Jalankan  program server, kemudian jalankan program client
         #gcc client.c -o client
          #gcc server.c -o server
  4.  Jalankan program server, kemudian jalankan program client
          #./server
         #./client
maka  outputnya adalah sebagai berikut :
  • Client
            
  • Server 

            




Sumber : 
http://salmaann.blogspot.com/2014/05/program-datagram-socket.html
http://haizum2009.blogspot.com/2009/08/stream-socket-tcp-transmission-control_11.html
 

3 Komen:

Toko pasutri said...

OBAT PEMBESAR PENIS PERMANENT

OBAT PERANGSANG DH2O Cair

OBAT KUAT
AFRIKA BLACK ANT SEMUT HITAM


OBAT PELANGSING ALAMI FRUIT PLANT ASLI

OBAT PENINGGI BANDAN

VAGINA GETAR GOYANG SUARA

SELAPUT DARA BUATAN

PERANGSANG BLUE WIZARD

OBAT KUAT VMEN PLUS HERBAL

OBAT TIDUR CAIR

OBAT BIUS CAIR

LIQUID SEX

OBAT TIDUR

BONEKA FULL BODY

ALAT PEMUAS SEX

BONEKA PEMUAS SEX

OBAT PERONTOK BULU

OBAT PERONTOK

OBAT PERONTOK BULU PERMANENT

OBAT PEMBESAR PAYUDARA

PUERARIN

OBAT KEPUTIHAN

CRISTAL X MENGHILANGKAN KEPUTIHAN

OBAT PEMBESAR PENIS

VIGRX OBAT PEMBESAR PENIS

CARA MEMPERBESAR PENIS SECARA ALAMI

cendol bkaso said...

makasih gan infonya. sangat bermanfaat

PAK BUDIMAN DI MALANG said...

saya sangat berterima kasih banyak MBAH RAWA GUMPALA atas bantuan pesugihan dana ghaib nya kini kehidupan kami sekeluarga sudah jauh lebih baik dari sebelumnya,ternyata apa yang tertulis didalam blok MBAH RAWA GUMPALA itu semuanya benar benar terbukti dan saya adalah salah satunya orang yang sudah membuktikannya sendiri,usaha yang dulunya bangkrut kini alhamdulillah sekaran sudah mulai bangkit lagi itu semua berkat bantuan beliau,saya tidak pernah menyangka kalau saya sudah bisa sesukses ini dan kami sekeluarga tidak akan pernah melupakan kebaikan MBAH,,bagi anda yang ingin dibantu sama MBAH RAWA GUMPALA silahkan hubungi MBAH di 085 316 106 111 insya allah beliau akan membantu anda dengan senang hati,pesugihan ini tanpa resiko apapun dan untuk lebih jelasnya buka saja blok mbah PESUGIHAN DANA GHAIB TANPA TUMBAL

Post a Comment

Related Posts Plugin for WordPress, Blogger...
 
MMORPG Games - MMORPG List - Video Game Music