Minggu, 03 Juni 2012

Windows Socket (Winsock) dan Contoh Program Visual Basic 6 (TCP server) dan Alamat IP (Local 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, Winsock mencapai versi 2.2 yang merupakan penyempurnaan dari versi 2.1.

Inti rutin-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.
6. Server mengetahui dan menutup koneksi terhadap client tersebut.






1. Buatlah sebuah proyek bernama TCPServer.vbp.

2. Tambahkan sebuah form bernama frmChat dengan tampilan sebagai berikut.

chat server

3. Set property Enabled pada cmdDisconnect menjadi False.

4. Set property Locked pada txtChat menjadi True.

5. Ketikkan kode berikut pada tempatnya yang sesuai.


Private Const PortNumber = 4000

Private Sub cmdClose_Click()
Unload Me
End Sub


Private Sub cmdDisconnect_Click()
sck.Close

cmdDisconnect.Enabled = False
cmdListen.Enabled = True
End Sub

Private Sub cmdListen_Click()
sck.LocalPort = PortNumber
sck.Listen

cmdListen.Enabled = False
cmdDisconnect.Enabled = True
txtMsg.SetFocus
End Sub

Private Sub cmdSend_Click()
sck.SendData txtMsg.Text
End Sub

Private Sub Form_Load()
Show
cmdListen.SetFocus
End Sub

Private Sub sck_Close()
sck.Close
End Sub

Private Sub sck_ConnectionRequest(ByVal requestID As Long)
If sck.State <> sckClosed Then
sck.Close
End If
sck.Accept requestID
End Sub

Private Sub sck_DataArrival(ByVal bytesTotal As Long)
Dim sData As String

sck.GetData sData
txtChat.Text = txtChat.Text & sData & vbCrLf
End Sub

Private Sub sck_SendComplete()
txtMsg.Text = ""
End Sub
 


6. Bukalah jendela Microsoft Visual Basic yang baru, lalu buat sebuah proyek bernamaTCPClient.vbp.

7. Tambahkan sebuah form bernama frmChat dengan tampilan sebagai berikut.

chat client

8. Set property Enabled pada cmdDisconnect menjadi False.

9. Set property Locked pada txtChat menjadi True.

10. Ketikkan kode berikut pada tempatnya yang sesuai.


Private Const RemoteHost = "Masagus" 'Nama server chat
Private Const PortNumber = 4000

Private Sub cmdClose_Click()
Unload Me
End Sub

Private Sub cmdConnect_Click()
sck.Connect RemoteHost, PortNumber
End Sub

Private Sub cmdDisconnect_Click()
sck.Close

cmdDisconnect.Enabled = False
cmdConnect.Enabled = True
End Sub

Private Sub cmdSend_Click()
sck.SendData txtMsg.Text
End Sub

Private Sub Form_Load()
Show
cmdConnect.SetFocus
End Sub

Private Sub sck_Close()
sck.Close
End Sub

Private Sub sck_Connect()
cmdConnect.Enabled = False
cmdDisconnect.Enabled = True
txtMsg.SetFocus
End Sub

Private Sub sck_DataArrival(ByVal bytesTotal As Long)
Dim sData As String

sck.GetData sData
txtChat.Text = txtChat.Text & sData & vbCrLf
End Sub

Private Sub sck_SendComplete()
txtMsg.Text = ""
End Sub


11. Jalankan TCPServer.vbp, kemudian tekan tombol Listen.

12. Jalankan TCPClient.vbp, kemudian tekan tombol Connect.

13. Cobalah untuk saling berkirim data.


Mendapatkan Nama dan Alamat IP Komputer (VB6)




1. Buatlah sebuah proyek dengan nama LocalIP.vbp.

2. Buat sebuah form bernama frmLocalIP dengan tampilan sebagai berikut.



winsock control

3. Set properties-nya menjadi sebagai berikut.


ObyekPropertyNilai
txtHostBackColor&H00C0C0C0
txtHostLockedTrue
txtIPBackColor&H00C0C0C0
txtIPLockedTrue


4. Tambahkan kode seperti di bawah ini.


Private Sub cmdClose_Click()
Unload Me
End Sub

Private Sub cmdResolve_Click()
txtHost.Text = sck.LocalHostName
txtIP.Text = sck.LocalIP
End Sub

Private Sub Form_Load()
Show
cmdResolve.SetFocus
End Sub


5. Jalankan program. Tekan tombol Resolve, maka nama komputer dan alamat IP-nya akan tertera.



http://planetsourcecode.blogspot.com/

4 komentar:

Zaenudin Mahfud mengatakan...

ijin print....

Unknown mengatakan...

Mas salam kenal ya, mw tanya supaya koneksi tidak terputus dang mrequest terus menerus ke server gimana mas...?

andy hakim mengatakan...

http://jakartafinestmeat.wordpress.com
http://mitrabogatama.com
http://supplierdagingsa[i.com
http://meatspecialist.co.id
http://proteinsolutin.co.id
http://proteinatama.com

Unknown mengatakan...

bismillah....

Posting Komentar