Friday, 12 December 2014

VB6.0 :: Windows Sockoet (Winsock) dan Contoh Pemrogaman Menggunakan Visual Basic 6.0 (TCP/IP)



Windows Socket (Winsock)
     Socket merupakan inti dari pemrograman jaringan. Winsock merupakan standar API jaringan pada semua varian dari sistem operasi Microsoft Windows. Sampai saat artikel ini ditulis, Winsockmencapai versi 2.2 yang merupakan penyempurnaan dari versi 2.1. Inti rutin Winsock berada pada file WS2_32.DLL. Untuk memudahkan pemrograman dengan kontrol ActiveX, Microsoft telah membuat kontrol Winsock yang diimplementasikan pada file MSWINSCK.OCX. Untuk mempermudah pengertian dan pembahasan, contoh-contoh program pada modul ini akan menggunakan kontrol Winsock yang diimplementasikan pada bahasa pemrograman Microsoft Visual Basic versi 6.0.

Cara Kerja Winsock
      Misalnya terdapat dua buah komputer: client dan server yang ingin berhubungan. Langkah-langkah untuk mengadakan koneksi, mengirim data sampai pemutusan koneksi dapat digambarkan sebagai berikut.

1. Mula-mula server akan mendengarkan (listen) permintaan koneksi pada nomor port tertentu. Nomor port digunakan untuk membedakan aplikasi pada sebuah sistem komputer.
2. Client yang ingin berhubungan meminta koneksi kepada server (connect).
3. Server menerima koneksi dari client (accept).
4. Selanjutnya baik client atau server dapat saling berkirim (senddata) dan menerima data (getdata).
5. Client menutup koneksinya.
Pemrogaman Menggunakan Visual Basic 6.0 (TCP/IP)
         Untuk pemrograman aplikasi socket berbasis Windows, maka komponen API yang sering digunakan adalah Winsock (Win-dows Socket API) yang mendukung interface standar TCP/IP, yang merupakan protokol jaringan paling popular saat ini (contoh protokol jaringan yang lain adalah NetBIOS, IPX dari Novell, AppleTalk dari Apple, dan seterusnya).
Pengertian TCP/IP (TCP over IP) mungkin dapat menjadi sedikit rancu jika diartikan TCP/IP hanya mengizinkan pengiriman TCP (dan tidak UDP), padahal seperti yang telah kita bahas, pengiriman socket dapat melalui TCP maupun UDP.
 Pengertian TCP/IP di sini sebenarnya digunakan untuk menunjukkan teknologi jaringan/Internet, termasuk di dalamnya adalah UDP. Jika Anda menggunakan UDP, dapat juga disebut sebagai UDP/IP (UDP over IP), tetapi umumnya istilah ini jarang digunakan dan istilah TCP/IP telah mencakup, baik TCP maupun UDP.
Pada bahasa pemrograman visual seperti Visual Basic/Delphi, Anda dapat menggunakan control Winsock yang telah disediakan untuk mengembangkan aplikasi socket.Walaupun kita akan mencontohkan aplikasi socket dalam environment Windows, Anda tidak perlu khawatir jika aplikasi socket yang menggunakan Winsock tidak dapat berkomunikasi dengan aplikasi socket berbasis Unix/Linux, karena komunikasi tetap dapat terjadi selama aplikasi tersebut menggunakan protokol jaringan yang sama.
Kalau demikian, untuk mencoba aplikasi socket, apakah mutlak diperlukan setidaknya jaringan dengan minimal dua komputer yang saling terkoneksi? Bagi Anda yang terpaksa hanya menggunakan satu komputer, dapat memanfaatkan alamat localhost atau 127.0.0.1 yang mengizinkan dua aplikasi berjalan pada satu mesin komputer dan berkomunikasi satu sama lain.
Aplikasi Server
Pengertian socket adalah interface pada jaringan yang menjadi titik komunikasi antar mesin pada Internet Protocol, dan tentunya tanpa komunikasi ini, tidak akan ada pertukaran data dan informasi jaringan.
Socket terdiri dari elemen-elemen utama sebagai berikut:
1. Protokol.
2. Local IP.
3. Local Port.
4. Remote IP.
5. Remote Port.
Untuk membuat aplikasi socket yang sederhana, tidak diperlukan langkah-langkah yang rumit. Kita akan mencoba membuat dua buah aplikasi, yang pertama adalah aplikasi server yang akan menerima data, sedangkan aplikasi kedua adalah aplikasi client yang mengirimkan data pada server. Baik aplikasi server dan aplikasi client mendefi nisikan port yang sama sebagai jalur komunikasi.
Contoh program dibuat dengan menggunakan Visual Basic 6. Konsep pemrograman yang serupa juga dapat Anda implementasikan pada bahasa pemrograman lain seperti Visual Basic.NET, Delphi, dan lain sebagainya.
Kita akan memulainya dengan aplikasi server, tugas aplikasi server cukup sederhana, yaitu hanya siap sedia menerima data yang masuk pada sebuah port. Control yang Anda perlukan adalah control winsock bernama Winsock1 dan sebuah textbox bernama Text1. Pada event Form_Load, tuliskan kode program di bawah ini:

Private Sub Form_Load()
    With Winsock1
        .LocalPort = 1025
        .Listen
    End With
End Sub

       Kode program tersebut melakukan inisialisasi socket, socket memilih port 1025 pada komputer server dan menunggu data yang masuk melalui port tersebut dengan perintah Listen.
Selanjutnya pada event Winsock1_ConnectionRequest, ketikkan kode program berikut:

Private Sub Winsock1_ConnectionRequest(ByVal requestID AsLong)
  If Winsock1.State <> sckClosed Then Winsock1.Close
  Winsock1.Accept requestID
End Sub

      Kode program di atas berfungsi untuk menerima request koneksi. Selanjutnya pada event Winsock1_DataArrival, ketikkan kode program berikut:

Private Sub
Winsock1_DataArrival(ByValbytesTotal As Long)
        Dim strData As String
        Winsock1.GetData strData
        Text1.Text = Text1.Text & strData  
End Sub

Kode program di atas berfungsi untuk mengambil data yang diterima oleh socket dan menampilkannya pada Text1. Aplikasi server telah selesai!

Aplikasi Client
Seperti aplikasi server, Anda perlu menyiapkan control Winsock dan Text, ditambah sebuah control Command Button yang dapat Anda namakan cmdKirim yang berfungsi untuk mengirimkan data yang diketik pada Text1 ke aplikasi server.

Pada event Form_Load, ketikkan kode program di bawah:

Private Sub Form_Load()
With Winsock1
    .RemoteHost = “127.0.0.1”
    .RemotePort = 1025
    .Connect
End With
End Sub

       Kode program di atas berfungsi untuk melakukan inisialisasi, tentukan IP tujuan/server/remote dengan 127.0.0.1 seperti pada contoh jika Anda mencoba aplikasi ini dengan menggunakan satu mesin komputer.
Jika Anda mencobanya dengan menggunakan dua komputer dalam sebuah jaringan, isikan dengan IP komputer yang berfungsi sebagai server.
Selanjutnya pada cmdKirim, ketikkan kode program sebagai berikut:

Private Sub cmdKirim_Click()
If Winsock1.State = sckConnected Then
    Winsock1.SendData Text1.Text
End If
End Sub

      Kode program di atas akan mengirimkan pesan yang Anda ketik pada textbox Text1 pada aplikasi server.
 Selesailah sudah aplikasi server dan client. Cukup mudah, bukan? Anda dapat melakukan uji coba dengan menjalankan aplikasi server pada komputer yang berfungsi sebagai server (ataupun komputer yang sama dengan aplikasi client jika Anda menggunakan 127.0.0.1 sebagai remote IP).
Jalankan aplikasi client, dan ketik kata-kata yang Anda inginkan, lalu tekan Command Button cmdKirim, maka aplikasi server akan menampilkan pesan yang Anda ketikkan tersebut.

No comments:

Post a Comment