一、所用控制項
在程式中將使用winsock控制項。winsock控制項是乙個activex控制項,使用tcp協議或udp協議連線到遠端計算機上並與之交換資料。和定時器控制項一樣,winsock控制項在執行時是不可見的。winsock的工作原理是:客戶端向伺服器端發出連線請求,伺服器端則不停地監聽客戶端的請求,當兩者的協議溝通時,客戶端和伺服器端之間就建立了連線,這時客戶端和伺服器端就可以實現雙向資料傳輸。實際程式設計中,必須分別建立乙個伺服器端應用程式和乙個客戶端應用程式,兩個應用程式中分別有自己的winsock控制項。首先設定winsock控制項使用的協議,這裡我們使用tcp協議。現在,讓我們開始用vb建立兩個程式,乙個是客戶端程式myclient,另乙個是伺服器端程式myserver.
二、編寫客戶端程式
首先來建客戶端程式myclient.在myclient程式中建立乙個窗體,載入winsock控制項,稱為tcpclient,表示使用的是tcp協議,再加入兩個文字框(text1和text2),用來輸入伺服器的ip位址和埠號,然後建立乙個按鈕(cd1),用來建立連線,按下之後就可以對連線進行初始化了,**如下:
private sub cd1_click()
tcpclient.romotehost=text1.text
tcpclient.romoteport=val(text2.text)'埠號,預設為1001
tcpclient.connect '呼叫connect方法,與指定ip位址的計算機進行連線
cd1.enabled=false
end sub
連線之後就是如何處理所收到的資料的問題了。客戶端和伺服器端建立連線後,如果有任何一端接收到新的資料,就會觸發該端winsock控制項的dataarrival事件,在響應這個事件時,可以使用getdata方法獲得傳送來的資料。比如可以在tcpclient的dataarrival事件中編寫**如下:
private sub tcpclient_dataarrival(byval bytestotal as long)
dim x as string
tcpclient.getdata x '使用getdata獲得傳送來的資料
end sub
後面的省略部分表示對接收到的資料進行的具體處理,讀者可以根據實際情況編寫。
三、編寫伺服器端程式
先建立乙個窗體,載入winsock控制項,名稱為tcpserver.另外在窗體上加入乙個文字框text1用來顯示客戶機的ip位址和客戶機傳送過來的資料資訊。
當客戶端程式執行時,在客戶端程式按下連線按鈕後,客戶端向伺服器端程式請求連線,這時伺服器端的connectionrequest事件被觸發,所以伺服器端程式要解決連線問題,可以使用connectionrequest事件完成此功能。**如下:
'在窗體的load事件中對tcpserver控制項進行初始化
private sub form_load()
tcpserver.localport=1001
tcpserver.listen '把伺服器置於監聽檢測狀態
end sub
'伺服器端接收到客戶端的連線請求,首先檢查當前狀態是否處於連線關閉狀態
private sub tcpclient_connectionrequest(byval requestid as long)
if tcpserver.state<>sckclosed then '檢查控制項的state屬性是否為關閉
tcpserver.close '
tcpserver.accept requestid '
end if
end sub
現在我們在伺服器端程式tcpserver的dataarrival事件中新增以下**,以便讓伺服器端程式可以接收客戶機端的指令,並執行相應的程式。
四、測試遠端控制程式
現在,你就可以將這兩個程式分別執行於兩台使用tcp/ip協議聯網的機器了。在客戶機端你按下連線按鈕,再輸入「c: mmand.com」,可以看到在伺服器端立刻開啟乙個dos視窗,設想一下,如果它執行一些破壞性的命令會發生什麼事情?這就是乙個最基本的遠端控制程式。當然,真正的黑客程式要複雜得多,但基本原理是相同的。現在你該恍然大悟了吧?
VB6中用DataReport做報表
vb6中用datareport做報表 2002 01 08 李 yesky 我不是vb熟練工,最近剛剛用vb做完乙個程式,其中控制部分沒費太大周折,倒是報表部分頗讓我費了一翻腦筋。在網上找了半天,也沒找到關於vb6的 datareport的詳細介紹,於是想借鑑 前輩 們的經驗,用crystalrep...
VB6中用DataReport做報表
vb6中用datareport做報表 首先介紹一下datareport物件的幾個常用屬性。一是datasource,用於設定乙個資料來源,通過該資料來源,資料使用者被繫結到乙個資料庫 二是datamember,從datasource提供的幾個資料成員中設定乙個特定的資料成員 三是leftmargin...
VB6中用DataReport做報表
首先介紹一下datareport物件的幾個常用屬性。一是datasource,用於設定乙個資料來源,通過該資料來源,資料使用者被繫結到乙個資料庫 二是datamember,從datasource提供的幾個資料成員中設定乙個特定的資料成員 三是leftmargin rightmargin topmar...