Minggu, 03 Juni 2012

Interfacing TCP/IP pada Visual Basic 6.0 (VB6)


TCP/IP adalah sekumpulan protokol yang didesain untuk melakukan fungsi-fungsi komunikasi data pada Wide Area Network (WAN). TCP/IP terdiri atas sekumpulan protokol yang masing-masing bertanggung jawab atas bagian-bagian tertentu dari komunikasi data. Protokol yang satu tidak perlu mengetahui cara kerja protokol yang lain, sepanjang ia masih bisa saling mengirim dan menerima data. Berkat penggunaan prinsip ini, TCP/IP menjadi protokol komunikasi yang fleksibel (Onno, 1998). TCP/IP dapat diterapkan dengan mudah di setiap jenis komputer dan interface jaringan, karena sebagian besar isi kumpulan protokol ini tidak spesifik terhadap satu komputer atau peralatan jaringan tertentu. Agar TCP/IP dapat berjalan di atas interface jaringan tertentu, hanya perlu dilakukan perubahan pada protokol yang berhubungan dengan interface jaringan saja.
 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, dan semuanya segera berjalan sesuai skenario (dengan catatan, semua seting network dalam kondisi baik).

Komponen Winsock mempunyai 2 jenis protokol:
1.  TCP – Transmission Control Protocol. Dengan TCP mengharuskan 2 atau lebih komputer yang terhubungan untuk mengirim/menerima data harus dalam kondisi terkoneksi. Jadi dengan menggunakan TCP sangat aman karena data akan selalu dicek sampai atau tidak.
2.    UDP – User Datagram Protocol. Dengan UDP tidak mengharuskan adanya koneksi yang aktif, hanya saja tidak ada jaminan data yang dikirim sampai atau tidak.

Contoh aplikasi menggunakan Winsock adalah aplikasi chat sederhana.
Pertama, menyiapkan Form baru dan menambahkan Control  Microsoft Winsock Control  6.0.
Setelah itu buat Form sebagai Client seperti pada gambar dibawah ini.
Kemudian buat Form lagi untuk Server seperti gambar dibawah ini.
Kemudian ketikkan listing program dibawah ini untuk Client.
Option Explicit
Private Sub Form_Load()
    'set up the Winsock1 to connect to the local computer
    Winsock1.RemoteHost = "127.0.0.1"
    Winsock1.RemotePort = 11111
    Winsock1.Connect
End Sub
Private Sub cmdSend_Click()
    'send the data thats in the text box and
    'clear it to prepare for the next chat message
    Winsock1.SendData txtChat.Text
    DoEvents
    txtMain.Text = txtMain.Text & vbCrLf & txtChat.Text
    txtChat.Text = ""
End Sub
Private Sub Winsock1_Connect()
    'we are connected!
    MsgBox "Connected"
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    ' get the data from the socket
    Winsock1.GetData strData
    ' display it in the textbox
    txtMain.Text = txtMain.Text & vbCrLf & strData
    ' scroll the box down
    txtMain.SelStart = Len(txtMain.Text)
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)
    ' an error has occured somewhere, so let the user know
    MsgBox "Error: " & Description
    ' close the socket, ready to go again
    Winsock1.Close
End Sub

Dan listing program dibawah ini untuk Server.
Option Explicit
Private Sub cmdSend_Click()
    Winsock1.SendData txtChat.Text
    DoEvents
    txtMain.Text = txtMain.Text & vbCrLf & txtChat.Text
    txtChat.Text = ""
End Sub
Private Sub Form_Load()
    Winsock1.LocalPort = 11111
    Winsock1.Listen
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    'reset the socket, and accept the new connection
    Winsock1.Close
    Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    'get the data and display it in the textbox
    Winsock1.GetData strData
    txtMain.Text = txtMain.Text & vbCrLf & strData
    txtMain.SelStart = Len(txtMain.Text)
End Sub
Maka setelah program dijalankan hasilnya seperti pada gambar dibawah ini.

2 komentar:

  1. tetapi setelah di run programnya mas,, ada error pesannya gini "Runtime error 40006" "Wrong protocol or connection state for the requested transaction or request"

    BalasHapus
  2. Komentar ini telah dihapus oleh pengarang.

    BalasHapus