Minggu, 03 Juni 2012

Aplikasi TCP/IP pada Visual Basic 6.0


Transmission Control Protocol/Internet Protocol (TCP/IP) adalah satu set aturan standar komunikasi data yang digunakan dalam proses transferdata dari satu komputer ke komputer lain di jaringan komputer tanpa melihat perbedaan jenis hardware. Protokol TCP/IP dikembangkan dalam riset pertama kali oleh Defense Advanced Research Projects Agency(DARPA) di Amerika Serikat dan paling banyak digunakan saat ini yang implementasinya dalam bentuk perangkat lunak (software) di system operasi. Protokol TCP/IP dikembangkan dalam riset pertama kali olehDefense Advanced Research Projects Agency (DARPA) di Amerika Serikat dan paling banyak digunakan saat ini yang implementasinya dalam bentuk perangkat lunak (software) di system operasi.
Membuat interfacing TCP/IP pada Visual Basic 6.0 dapat menggunakan component Winsock Control 6.0. Fungsi dari Winsock Control mempermudah kita sebagai programer untuk membuat software yang bisa berkomunikasi dengan komputer lain. Dengan Winsock Control maka kita tidak perlu mengetahui secara detail protokol TCP/IP maupun pemanggilan fungsi Winsock API untuk membuat sebuah aplikasi network. Yang perlu kita lakukan hanyalah mengisi nilai properti, mengeksekusi metode.

Sekilas tentang Winsock

Kita telah mengetahui bahwa komputer membutuhkan sistem operasi agar bisa bekerja. Sistem operasi itu sendiri adalah software. Untuk mengetik, cetak, gambar, semua tugas komputasi membutuhkan software, termasuk juga berkomunikasi dengan komputer lain. Windows memiliki API (Application Programming Interface) untuk berkomunikasi melalui TCP/IP yang terkenal dengan nama Winsock API. Namun penggunaan API itu sendiri sudah cukup sulit. Microsoft mengerti kebutuhkan para programer dan membuat komponen ActiveX control yang bernama Winsock Control. Fungsinya mempermudah kita sebagai programer untuk membuat software yang bisa berkomunikasi dengan komputer lain. Dengan Winsock control maka Anda tidak perlu mengetahui secara detail protokol TCP/IP maupun pemanggilan fungsi Winsock API untuk membuat sebuah aplikasi network. Yang perlu Anda lakukan hanyalah mengisi nilai properti, mengeksekusi metode, dan semuanya segera berjalan sesuai skenario (dengan catatan, semua seting network dalam kondisi baik).
Contoh menggunakan Winsock
Winsock mempunyai 2 fungsi dasar, yang pertama mendengarkan fungsi yang masuk :
Private Sub Form_Load()
    With Winsock1
        'set lokal port, misal 21211
        'ex : 3306 (MySQL), 3050 (Firebird) de el el
        .LocalPort = 21211
        'listen on this port
        .Listen
    End With
End Sub
ketika ada koneksi masuk event Winsock_ConnectionRequest() akan dijalankan, contoh sederhana untuk menghandle event Winsock_ConnectionRequest() :
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    With Winsock1
        .Close
        .Accept requestID
    End With
End Sub
Nah sampai disini kita sudah mengetahui cara untuk menghandle koneksi yang masuk, untuk menghandle koneksi keluar ada 2 properties yang perlu kita ketahui yaitu RemoteHost (diisi dengan IP Address komputer target) dan RemotePort (diisi dengan port yang sama pada saat memanggil method .Listen).
Private Sub cmdTesKoneksi_Click()
    With Winsock1
        'ip komputer target
        .RemoteHost = "127.0.0.1"
        .RemotePort = 21211
        .Connect
    End With
End Sub
Selanjutnya permintaan koneksi sudah dilakukan kemudian bagaimana kita mengetahui koneksi tersebut sudah diterima/belum.  Ada 2 method yang bisa melakukan ini yaitu Winsock_Connect dan the Winsock_Error,  dan dari nama methodnya saja saya rasa sudah menjelaskan maksud dan tujuan dari method tersebut.
Private Sub Winsock1_Connect()
    MsgBox "Connected"
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    MsgBox "Error: " & Description
End Sub
 program SEDERHANAuntuk melakukan koneksi via Winsock. Persiapan yang perlu dilakukan :
1.    Buat project baru
 
1.    Tambahkan komponen (CTRL + T) Microsoft Winsock Control 6.0 kemudian drag ke form
2.    Drag komponen CommandButton dan set properties Name = cmdTesKoneksi (khusus program klien)

Source code lengkap program pertama (server) :
 
Private Sub Form_Load()
    With Winsock1
        .LocalPort = 21211

        'listen on this port
        .Listen
    End With
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    With Winsock1
        .Close
 
        .Accept requestID
    End With
End Sub

Source code lengkap program kedua (klien) :
 
Private Sub cmdTesKoneksi_Click()
    With Winsock1
        If .State <> sckClosed Then .Close

        'ip komputer target - server
        .RemoteHost = "127.0.0.1"
        .RemotePort = 21211

        'start the connection
        .Connect
    End With
End Sub

Private Sub Winsock1_Connect()
    MsgBox "Connected"
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    MsgBox "Error: " & Description
End Sub

Jika sudah jalankan kedua program tersebut kemudian klik tombol cmdTesKoneksi, dan kita akan mendapatkan pesan “Connected” yang artinya kita sudah berhasil membuat aplikasi sederhana untuk melakukan koneksi menggunakan Winsock.




1 komentar:

  1. Gan....Klo saya kepengennya ada 2 client gimana itu connectnya ?
    ane masih rada bingung..:v

    BalasHapus