Skip navigation

Tag Archives: Network Programming


Session adalah sebuah pertukaran informasi semi permanen antara dua buah device. Dengan menggunakan session sebuah device terus dapat mengenali sebuah device identik dalam jangka waktu yang tidak terlalu lama dan dapat menyimpan informasi mengenai komunikasi antara kedua device tersebut. Session ini bersifat stateful (meski mungkin ada yang tidak, tapi gw pribadi gak tau contohnya). Sebuah device dapat mengingat apa sih yang terjadi antara device tersebut dengan sebuah device yang lain selama komunikasi berlangsung.

3wayhandshakeContoh session adalah TCP session. Pada awal sebuah komunikasi TCP, kedua device akan membuka sebuah socket untuk berkomunikasi. Sebuah TCP session adalah dari awal sebuah device mengirimkan SYN sampai dengan pesan ACK penutupan koneksi tersebut.

Di dalam desain protokol, kita perlu mengetahui state sebuah device. Dengan adanya session, state tersebut dengan mudahnya diketahui selama kedua device masih berada dalam session. Pada contoh di post-post sebelumnya, awal sebuah session dimulai ketika sebuah socket selesai melakukan blocking dan menerima koneksi sampai socket ditutup. Selama sesi ini kedua device bertukar pesan-pesan. Pesan-pesan ini nantinya akan diparsing oleh kedua device berdasarkan protokol yang sudah ditetapkan oleh si desainer protokol.

Akan tetapi ada beberapa protokol yang sifatnya stateless, seperti protokol HTTP. Pada protokol ini, client hanya mengirim sebuah HTTP request dan server mengembalikan sebuah HTTP response. Hal ini dirasa cukup karena pada awalnya HTTP mungkin digunakan untuk static web. Pada penggunaan selanjutnya ada kebutuhan untuk membuat sebuah web sedikit lebih statis. Kemudian diciptakanlah sebuah mekanisme session di atas protokol HTTP.

Pada mekanisme ini, saat server menerima request dari sebuah client, server tersebut akan memeriksa apakah client tersebut sudah berada dalam sebuah session atau belum. Jika belum maka server membangkitkan sebuah hash dan menyimpannya pada basis data. Setelah itu server akan mengembalikan response yang disertai dengan hash tersebut pada header dari response. Selanjutnya si client diwajibkan untuk menyertakan hash tersebut pada header dari request yang dikirim kepada si server. Dengan demikian server dapat mengetahui apakah si client sudah berada pada sebuah session atau belum.


Salah satu cara mengatasi kemungkinan timeout yang diakibatkan oleh blocking pada postingan sebelumnya adalah dengan menggunakan multithread.

Read More »


Pada post yang lalu, server yang dijalankan hanya bisa memaintain sebuah koneksi kemudian keluar. Cara untuk mengatasinya adalah dengan menggunakan infinite loop.
Read More »


Kalau di post ini kita nyobanya pake Telnet, maka sekarang kita bikin client sederhana untuk berkomunikasi dengan server tersebut.
Read More »


Lanjutan dari yang sebelumnya.

Di sini, gw akan mencoba ngebuat sebuah server tebak-tebakan. Server ini akan membangkitkan sebuah angka, mencoba menerima masukkan dari client sebuah angka, dan memeriksa kecocokan angka dari client dengan angka yang sudah dibangkitkan. Gw akan mencoba memperagakan bagaimana sebuah server dapat memegang koneksi dan melakukan komunikasi terus menerus sampai salah satu memutuskan.
Read More »


Sebelum ini gw gak pernah melakukan pemrograman socket dalam bahasa Java. Tapi sejak tugas progin yang terakhir memperbolehkan penggunaan Java untuk pemrograman socket, alhasil gw eksplorasi-eksplorasi dikit. Dan ternyata jauh lebih menyenangkan pemrograman socket di Java. Hehe.

Pertama-tama untuk mengenal socket di Java, kita bikin sebuah server yang menerima sebuah koneksi. Kodenya yang agak sederhana adalah di bawah.

Read More »


Di ambil dari sini. Sedikit snippet tentang socket programming di C. Pemrograman ini menggunakan fungsi-fungsi socket yang sudah disediakan oleh Linux. Untuk beberapa OS lain seperti BSD dan MacOS kalau gak salah penangannya agak sedikit berbeda.

Read More »


Kadang-kadang untuk melakukan pengembangan aplikasi yang berjalan pada jaringan, agak menyulitkan ketika kita tidak memiliki jaringan yang sesungguhnya. Kalau untuk pengembangan aplikasi web sebenarnya tidak terlalu penting memerlukan lebih dari 1 IP. Untuk mensimulasikan session pun cukup dengan melakukan instalasi 2 atau lebih browser. Sedangkan kalau ingin melakukan pengambangan aplikasi menggunakan socket biasanya harus mempunyai lebih dari 2 IP (atau 2 mesin lah).

Tapi dengan menggunakan VirtualBox, kita dapat membuat simulasi sebuah jaringan.

Kali ini saya sedang eksplorasi bagaimana melakukannya. Di VirtualBox ini saya mempunyai 2 buah OS yakni Ubuntu dan XP. Saya ingin mencoba agar Ubuntu dan XP ini dapat berada dalam 1 jaringan yang sama.

Read More »


Diambil dari artikel lama di blog

Tugas IF3292 Pemrograman Internet disuruh bikin yang beginian
SCP
Dari semua tugas sebelumnya

  1. HTML Editor with DHTML
  2. Simple CMS with PHP
  3. Web Chess with AJAX

yang paling menarik yet paling susah yang ini……
disuruh bikin protokol sendiri….

tapi sebenarnya kalau dipikir-pikir konsepnya gak terlalu susah…. teknologinya aja yang ribet….

jadi intinya disuruh ngebikin program SCP-like dengan menggunakan socket programming di Linux…..
fungsinya cuman 2 : buat ngopi dan mindahin folder/file dari satu host ke host yang lain…
Read More »

%d blogger menyukai ini: