Lewati navigasi

Monthly Archives: Mei 2009


Berikut contoh dialog antara server dan client pada SMTP. C adalah Client, S adalah Server.
Read More »


Pertama-tama gw gak habis pikir kenapa sih Facebook ngasih fitur buat ngasi liat wall orang ke orang lain….

Setelah beberapa bulan, Facebook menambahkan fitur baru…. Yakni ngomentarin wall orang ke orang lain…. Fitur yang sama gak kalah pentingnya sama fitur di atas, menurut gw….

Dan pada akhirnya gw menyesali kebodohan gw…. Karena saat ini gw tau gunanya buat apa….

Haha

Facebook is the best lah!


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 dipost yang ini dan ini, gw udah nyoba client menggunakan Telnet dan Command Line Application, sekarang gw bakal nyoba bikin client dengan GUI.

a1

Jadi ada 3 buah obyek form: textbox, button, sama textarea. Nah pada textbox, gw pengen mengetikkan apa yang ingin gw kirim ke server. Kemudian gw klik button “Kirim”. Di textarea akan keliatan pesan-pesan dari server.

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 »