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 
  1. Mengalihkan koneksi dari Winsock1(0) dengan Winsock1(1)
  2. Jika Winsock1(1) sudah digunakan maka cari Winsock1(index) lain yang koneksi nya sudah diputuskan
  3. 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

ScreenShot Hasil Percobaan



Source Code


{ 3 comments... read them below or Comment }

  1. bagus ini gan, bisa dikembangkan :)

    ReplyDelete
    Replies
    1. Terima kasih, masih banyak hal yang harus diperhatikan untuk membuat web server.. mungkin akan saya buat di part2 :)

      Delete
  2. salam kenal admin.
    mas, 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

    ReplyDelete

Popular Post