Pernah menggunakan control Winsock saat membuat program dengan Visual Basic? Saya pernah. Dan terus terang, keterpisahannya dengan program yang saya buat, membuat saya menjadi tidak nyaman. Jika saya me-running program saya di komputer lain, maka saya juga harus meng-copy-kan control Winsock ke komputer tersebut, dan meregistrasikannya. Betul, bahwa kita dapat membuat sebuah paket file install, dimana control Winsock tersebut dapat didistribusikan bersama program kita. Namun, pada kasus-kasus tertentu, di mana hal tersebut tidak bisa menjadi solusi terbaik.
Anda mungkin bisa membayangkan, jika harus membuat sebuah program pengontrol jaringan di kantor Anda, di mana Anda ingin user tidak tahu bahwa komputer mereka dipasangi sebuah program yang akan memantau aktivitas mereka di komputer. Anda cuma diberikan instruksi ole Boss Anda, "Tolong bikin sebuah program yang bisa memantau aktivitas seluruh karyawan dalam menggunakan komputer mereka, tanpa mereka tahu bahwa mereka sedang dipantau!".
Nah lo! Puyeng gak tuh, hehe.
Atau, bayangkan jika Anda harus meng-install program tersebut ke seratus komputer client. Anda mau? Kalau saya, terus terang, masih pikir-pikir lagi. Dan dalam rangka pikir-pikir itulah akhirnya saya menemukan solusi.
Baru-baru ini, teman saya pernah mengalami hal yang sama. Dan ia bertanya pada saya tentang solusinya. Jujur saja, sebenarnya saya sudah menemukan solusi ini sejak lama. Namun karena beberapa orang teman saya bertanya dan bertanya lagi tentang hal yang sama, ya sudah, sekalian saya buatkan artikelnya di sini. Siapa tahu di antara Anda juga ada yang punya masalah yang sama, dan masih bingung cari solusinya.
Ok, langsung saja ya. Pertama, Anda harus mendownload sebuah program bernama CSocketMaster. Program? ActiveX Control ya? Hehe, bukan, saudara-saudara. Kalau itu berupa ActiveX Control, mendingan saya pakai Winsock saja sekalian, hehe.
CSocketMaster adalah sebuah program yang dibuat untuk menggantikan kontrol Winsock. Satu hal yang paling saya suka dari CSocketMaster ini adalah bahwa CSocketMaster, dapat dimasukkan ke dalam program kita, sebagai bagian dari program kita yang utuh, karena yang dimasukkan adalah kode sumbernya!
Saya menemukan program ini beberapa tahun yang lalu di FreeVBCode. Dan hingga saat inipun ternyata program ini masih ada! Penulisnya tidak diketahui, namun ia mengatakan bahwa CSocketMaster dibuat berdasarkan kode sumber CSocket yang ditulis oleh Oleg Gdalevich di www.vbip.com.
Jadi, download-lah CSocketMaster ini di sini, buka program Anda, dan lakukan hal-hal berikut ini:
- Pada file distribusi CSocketMaster, ada dua file utama, yaitu modSocketMaster.bas dan CSocketMaster.cls. Masukkan dua file itu ke dalam project Anda.
- Kemudian, pada Startup Form / Module, masukkan statement berikut ini :
1: Dim WithEvents NamaSocket As CSocketMaster
NamaSocket adalah nama kontrol yang kita gunakan yang semula menggunakan Winsock. Dan inilah bedanya dengan Winsock, karena Anda tidak perlu menambahkan control apapun ke atas form Anda. Cukup deklarasikan statement tersebut. Jadi misalnya, jika di program sebelumnya kita menggunakan control Winsock dengan nama wsClient, maka deklarasinya menjadi:
1: Dim WithEvents wsClient As CSocketMaster
Kemudian di tiap form atau module di mana kita tadinya menggunakan control Winsock, pada bagian event Form_Load, atau di Sub Main (jika startup-form-nya adalah module), tambahkan code berikut:
1: Set NamaSocket = New CSocketMaster
Atau, jika nama �pengganti control� Winsocknya adalah wsClient, maka code-nya menjadi:
1: Set wsClient = New CSocketMaster
Setelah itu, Anda bisa "mencabut" kontrol Winsock tersebut dari Project Anda, karena fungsinya sudah tergantikan oleh CSocketMaster. Compile program Anda, running, dan silahkan bandingkan.
Ada beberapa hal yang mesti diperhatikan saat Anda menggunakan CSocketMaster ini, yaitu:
- Fungsi Winsock Close di control Winsock berubah menjadi CloseSck di SocketMaster.
- Event Winsock Close di control Winsock berubah menjadi CloseSck di SocketMaster.
- Fungsi WndProc digunakan untuk mengirim system messages.
Jadi mungkin Anda harus melakukan perubahan pada program Anda berkaitan dengan 3 hal di atas, terutama poin 1 dan poin 2. Namun saya rasa, itu adalah perubahan kecil, dan bisa Anda lakukan dengan cara Search & Replace pada kode sumber Anda.
Bagaimana? Tertarik untuk mengganti control Winsock dengan CSocketMaster?
Tidak ada komentar:
Posting Komentar