用VisualBasic學做“黑客”程序

字號:

一、所用控件
    在程序中將使用Winsock控件。Winsock控件是一個ActiveX控件,使用TCP協(xié)議或UDP協(xié)議連接到遠程計算機上并與之交換數(shù)據(jù)。和定時器控件一樣,Winsock控件在運行時是不可見的。Winsock的工作原理是:客戶端向服務器端發(fā)出連接請求,服務器端則不停地監(jiān)聽客戶端的請求,當兩者的協(xié)議溝通時,客戶端和服務器端之間就建立了連接,這時客戶端和服務器端就可以實現(xiàn)雙向數(shù)據(jù)傳輸。實際編程中,必須分別建立一個服務器端應用程序和一個客戶端應用程序,兩個應用程序中分別有自己的Winsock控件。首先設置Winsock控件使用的協(xié)議,這里我們使用TCP協(xié)議?,F(xiàn)在,讓我們開始用VB建立兩個程序,一個是客戶端程序myclient,另一個是服務器端程序myserver。
    二、編寫客戶端程序
    首先來建客戶端程序myclient。在myclient程序中建立一個窗體,加載Winsock控件,稱為tcpclient,表示使用的是TCP協(xié)議,再加入兩個文本框(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
    連接之后就是如何處理所收到的數(shù)據(jù)的問題了??蛻舳撕头掌鞫私⑦B接后,如果有任何一端接收到新的數(shù)據(jù),就會觸發(fā)該端winsock控件的dataarrival事件,在響應這個事件時,可以使用getdata方法獲得發(fā)送來的數(shù)據(jù)。比如可以在tcpclient的dataarrival事件中編寫代碼如下:
    private sub tcpclient_dataarrival(byval bytestotal as long)
    dim x as string
    tcpclient.getdata x ’’使用getdata獲得發(fā)送來的數(shù)據(jù)
    .......
    End sub
    后面的省略部分表示對接收到的數(shù)據(jù)進行的具體處理,讀者可以根據(jù)實際情況編寫。