- Back to Home »
- VB6 »
- [VB6] Membuat WebServer sederhana menggunakan component WinSock
Posted by : Unknown
Saturday, 25 July 2015
Pengertian Web server adalah sebuah software yang memberikan layanan berbasis data dan berfungsi menerima permintaan dari HTTP atau HTTPS pada klien yang dikenal dan biasanya kita kenal dengan nama web browser dan untuk mengirimkan kembali yang hasilnya dalam bentuk beberapa halaman web dan pada umumnya akan berbentuk dokumen HTML. itulah pengertian web server sebenarnya. dalam bentuk sederhana web server akan mengirim data HTML kepada permintaan web Browser sehingga akan terlihat seperti pada umumnya yaitu sebuah tampilan website.
Catatan: Pada tutorial kali ini sedikit membahas tentang HTML, di sarankan pembaca sudah memahami dasar HTML khusus nya tentang Form Method Get (Bisa pelajari disini)
Tutorial
1. Tekan CTRL+T
2. Bila layar component sudah tampil cari dan centang pada "Microsoft Winsock Control"
3. Dan tambahkan component tersebut ke Form anda
4. Lihat di propeties Winsock nya, pada index ubah jadi 0. ini bermaksud agar program bisa men-duplikat winsock nya.. kenapa di duplikat? agar web server kita bisa dibuka oleh banyak webbrowser dalam satu waktu
5. Untuk bagian deklarasi isi dengan
Dim TotalKoneksi As Integer
6. Lalu tambahkan fungsi dibawah ini
Private Function GET_VALUE(data As String, par As String) As String
If Left(data, 7 + Len(par)) = "GET /?" & par & "=" Then
GET_VALUE = Split(Right(data, Len(data) - 7 - Len(par)), " HTTP")(0)
Else
GET_VALUE = ""
End If
End Function
Fungsi ini saya buat untuk mengambil nilai GET dari client
7. Untuk Form_Load bisa di isi dengan ini
Private Sub Form_Load()
TotalKoneksi = 0
Winsock1(0).LocalPort = 1000
Winsock1(0).Listen
End Sub
Code ini menyatakan bahwa WebServer kita bisa diakses melalui port 1000 (bisa diubah bila kalian mau)
8 Lalu tambahkan code ini
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If TotalKoneksi = 0 Then
Load Winsock1(1)
If Winsock1(1).State <> sckClosed Then Winsock1(1).Close
Winsock1(1).Accept requestID
TotalKoneksi = 1
Else
For i = 1 To TotalKoneksi
If Winsock1(i).State = sckClosed Then
Winsock1(i).Accept requestID
Exit Sub
End If
Next i
TotalKoneksi = TotalKoneksi + 1
Load Winsock1(TotalKoneksi)
If Winsock1(TotalKoneksi).State <> sckClosed Then Winsock1(TotalKoneksi).Close
Winsock1(TotalKoneksi).Accept requestID
End If
End Sub
Code diatas digunakan untuk
- Mengalihkan koneksi dari Winsock1(0) dengan Winsock1(1)
- Jika Winsock1(1) sudah digunakan maka cari Winsock1(index) lain yang koneksi nya sudah diputuskan
- Jika tetap tidak ada Winsock1(index) lain yang kosong maka buat duplikat Winsock1(index) baru dengan cara Load Winsock1(index nya)
Catatan: Winsock(0) digunakan sebagai Navigator, yang mengatur seluruh koneksi
9. Tambahkan Code ini
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim Data_Kirim, Data_Terima As String
Winsock1(Index).GetData Data_Terima, vbString
If GET_VALUE(Data_Terima, "nama") <> "" Then
Data_Kirim = "<html><body>Hai... <b>" & GET_VALUE(Data_Terima, "nama") & "</b><br/>" & _
"<a href='\'>Kembali</a></body></html>"
Else
Data_Kirim = "<html><body>" & _
"<form method='GET'>Nama :<input type='text' name='nama'>" & _
"<input type='submit' value='OK'></body></html>"
End If
Winsock1(Index).SendData Data_Kirim
End Sub
Code ini digunakan untuk mengirimkan code HTML kepada User untuk ditampilkan ke WebBrowser nya
10. Terakhir tambahkan Code ini
Private Sub Winsock1_SendComplete(Index As Integer)
Winsock1(Index).Close
End Sub
Code ini digunakan untuk menutup koneksi bila semua HTML sudah sepenuhnya dikirim ke User
bagus ini gan, bisa dikembangkan :)
ReplyDeleteTerima kasih, masih banyak hal yang harus diperhatikan untuk membuat web server.. mungkin akan saya buat di part2 :)
Deletesalam kenal admin.
ReplyDeletemas, saya punya masalah dgn winsock yg sy buat. sy ingin membuat koneksi client-server dgn winsock, dan ingin mengcopy file atau folder yg ada pada client melalui server. gimana caranya yah mas admin :D