遠端控制 2

2022-03-24 08:32:10 字數 1235 閱讀 9819

二.接收

上面已經講到如何將資料報傳送出去,剩下的就是接收,和控制

既然傳送端是用upd傳送,那麼接收端當然也是用udp接收(好多廢話哦)

簡單點,用個迴圈將接收到的包按包號寫入記憶體,然後在記憶體中讀取資料,還原,具體步驟如下:

接收包-->按包號計算偏移-->接收到最後乙個包-->寫入-->還原-->顯示

|          |

寫入記憶體(迴圈)     

很簡單是吧,假如要考慮到其他的問題的話,那麼就會複雜一點,上面所有動作將放在乙個單獨執行緒執行

(1)接收包

ipendpoint hostpoint = new ipendpoint(ipaddress.any, 0);

byte recv 

=receclient.receive(

refhostpoint);

udpclient的receive是總是阻塞的,直到有資料報的到來,接受到位元組後,還要進行分解,上面漏了一步,根據我們發包的內容,我們可以知道包內各個位置放著的是什麼資料

0-3     包號

4-?     包內容

?-end 包內容長度

為什麼用?呢,這個就關係到這個資料報的設計問題了.現在想想真的是一大失敗.由於包內容的長度不一定是固定的,包內容長度用來描述包內容長度,在讀取的時候就有點麻煩,如下

for(

inti =0

; i 

<

4; i++)

每次都要用包長度-4來獲取包內容長度.假如開始我們的資料報設定成

struct

imageblock

那麼就會好很多

0-3     包號

4-7     包內容長度

7-end 包內容

獲取包號和長度之後,就可以寫入記憶體中相應的位置了.

計算?    

memorystream istream 

=new

memorystream();

istream.position 

=block.num 

*2040

;istream.write(block.content, 0, block.contentlen);

一般來說,只要不是最後乙個包的話,每包資料量都是2040,所以......雖然我覺得有點汗,但是還是這樣處理算了.同時還有乙個問題,udp包按順序發,但不一定是按順序接收.先看看這裡

if(block.num ==-

1)

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使用者我們這裡新增乙個...