




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C#下局域網(wǎng)屏幕監(jiān)控系統(tǒng)的實現(xiàn)摘 要 介紹了用C#工具在局域網(wǎng)中對各工作站的屏幕活動實時監(jiān)控的實現(xiàn)思路與設(shè)計過程,并可以通過控制中心與各工作站進(jìn)行信息溝通并控制客戶端,為局域網(wǎng)的管理提供了一種技術(shù)支持,具有很好的借鑒作用。關(guān)鍵詞 C#;局域網(wǎng);屏幕監(jiān)控;信息溝通 1 引言對于局域網(wǎng)管理員來說,實時查看網(wǎng)絡(luò)中各個工作站的屏幕活動情況是很正常的工作,同時也需要對不符合網(wǎng)絡(luò)要求的操作進(jìn)行信息溝通。對于現(xiàn)場比較遠(yuǎn)的網(wǎng)絡(luò)系統(tǒng)而言,頻繁地到現(xiàn)場去檢查監(jiān)督很浪費精力,一個具有屏幕監(jiān)控和信息傳遞的軟件將會大大減輕網(wǎng)管人員的工作負(fù)擔(dān)。2 實現(xiàn)思路為能更好地實現(xiàn)軟件功能的設(shè)計,從以下幾方面入手來進(jìn)行規(guī)劃設(shè)計:(1
2、) 采用客戶端和控制臺方式來設(shè)計軟件,客戶機(jī)和控制臺依據(jù)功能要求分別設(shè)計軟件,并分開安裝。(2) 控制臺軟件采用C#下的Socket通信建立與客戶端的通信連接,應(yīng)包括屏幕監(jiān)控、屏幕鎖定/解鎖、強(qiáng)制關(guān)機(jī)、信息傳遞等功能。也可以用一個文本文件或數(shù)據(jù)表按特定格式保存局域網(wǎng)內(nèi)各工作站的IP地址。(3) 在對圖像的處理方面,設(shè)定多線程對通過Socket傳送來的數(shù)據(jù)保存為臨時位圖文件后在控制臺界面里進(jìn)行顯示。(4) 盡可能對客戶端運(yùn)行的程序進(jìn)行隱含運(yùn)行,便于管理員的控制。3 程序界面程序設(shè)計過程采用了C#常用的控件,用Socket的通信方式對通信協(xié)議進(jìn)行約定定義,達(dá)到通信握手的目的。在主控臺的畫面顯示窗體
3、里判定傳送過來的圖片的大小,并適時調(diào)整。其主控界面如圖1所示。 圖1 服務(wù)端監(jiān)控4 關(guān)鍵代碼4.1 控制端代碼using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets;using System.Threading;using System.Drawing;using Client;namespace RemoteControl public class RevThread public delegate v
4、oid displayRevData(Point left_top_point,Point right_bottom_point,Image data); public displayRevData display_rev_data_func; private const int local_port = 61002; private UdpClient rev_data_udp; private Thread rev_data_thread; public RevThread(displayRevData disp_function) this.display_rev_data_func =
5、 disp_function; ThreadStart ts = new ThreadStart(rev_data); rev_data_thread = new Thread(ts); rev_data_thread.Start(); public void send_monitor_to_client(string local_ip_address,string dest_ip_address) send_monitor_to_client(local_ip_address,dest_ip_address, false); public void send_monitor_to_clien
6、t(string local_ip_address,string dest_ip_address,bool send_all_screen) /IP地址及端口信息 string command_string = #IP: + local_ip_address + #IPEND#PORT: + local_port.ToString() + #PORTEND#; if (true = send_all_screen) command_string = command_string + #SENDALL#; /添加控制客戶機(jī)的命令串,在客戶端尋找ORDER:與CMD_END#之間的串 comman
7、d_string = command_string+ ORDER: + Program .order_string ; command_string = command_string + #CMD_END#; UdpClient sender = new UdpClient(); IPEndPoint endPoint = (new IPEndPoint(IPAddress.Parse(dest_ip_address), GlobalConsts.LOCAL_WAIT_PORT); try byte bytes = Encoding.ASCII.GetBytes(command_string)
8、; sender.Send(bytes, bytes.Length, endPoint); catch (Exception ex) Console.WriteLine(ex.ToString(); finally sender.Close(); private void rev_data() rev_data_udp = new UdpClient(new IPEndPoint(IPAddress.Any, local_port); IPEndPoint remoteHost = null;while (rev_data_udp != null & Thread.CurrentThread.
9、ThreadState.Equals(ThreadState.Running) try byte buf = rev_data_udp.Receive(ref remoteHost); /以下代碼用于取出當(dāng)前這個數(shù)據(jù)包對應(yīng)的屏幕坐標(biāo)數(shù)據(jù) byte info = new byte50; Array.Copy(buf, 0, info, 0, 50); string info_data_str = Encoding.UTF8.GetString(info); int start_pos=info_data_str.IndexOf(#x_1:)+5; int end_pos=info_data_st
10、r.IndexOf(y_1:); int point_x = Convert.ToInt32(info_data_str.Substring(start_pos, end_pos - start_pos); start_pos = end_pos + 4; end_pos = info_data_str.IndexOf(x_2:); int point_y = Convert.ToInt32(info_data_str.Substring(start_pos, end_pos - start_pos); Point left_top_point = new Point(point_x, poi
11、nt_y); start_pos = end_pos + 4; end_pos = info_data_str.IndexOf(y_2:); point_x = Convert.ToInt32(info_data_str.Substring(start_pos, end_pos - start_pos); start_pos = end_pos + 4; end_pos = info_data_str.IndexOf(#); point_y = Convert.ToInt32(info_data_str.Substring(start_pos, end_pos - start_pos); Po
12、int right_bottom_point = new Point(point_x, point_y); byte image_bytes = new bytebuf.Length-50; Array.Copy(buf, 50, image_bytes, 0, image_bytes.Length); Image data = Screen.BytesToImg(image_bytes); if (null != display_rev_data_func) display_rev_data_func(left_top_point,right_bottom_point,data); catc
13、h (Exception e) Console.WriteLine(e.ToString(); private static string getLocalIPAddress() System.Net.IPAddress addr; / 獲得本機(jī)局域網(wǎng)IP地址 addr = new System.Net.IPAddress(Dns.GetHostEntry(Dns.GetHostName().AddressList0.GetAddressBytes(); return addr.ToString(); public void stop() rev_data_thread.Abort(); re
14、v_data_udp.Close(); private void button1_Click(object sender, EventArgs e)/屏幕監(jiān)控按鈕 if (textBox1.Text.Length 5) MessageBox.Show(被監(jiān)控的客戶端IP地址不允許空, 確信正確, MessageBoxButtons.OK); return; Program.order_string = ;/命令串,代表發(fā)送指令內(nèi)容,為空則不操作客戶端 rev_thread.send_monitor_to_client(comboBox1.Text, textBox1.Text); privat
15、e void button3_Click(object sender, EventArgs e) if (textBox1.Text.Length 5) MessageBox.Show(被監(jiān)控的客戶端IP地址不允許空, 確信正確, MessageBoxButtons.OK); return; Program.order_string = LOCK; rev_thread.send_monitor_to_client(comboBox1.Text, textBox1.Text); private void button4_Click(object sender, EventArgs e) if
16、(textBox1.Text.Length 5) MessageBox.Show(被監(jiān)控的客戶端IP地址不允許空, 確信正確, MessageBoxButtons.OK); return; Program.order_string = UNLOCK; rev_thread.send_monitor_to_client(comboBox1.Text, textBox1.Text); private void button5_Click(object sender, EventArgs e) if (textBox1.Text.Length 5) MessageBox.Show(被監(jiān)控的客戶端IP
17、地址不允許空, 確信正確, MessageBoxButtons.OK); return; Program.order_string = CLOSEPC; rev_thread.send_monitor_to_client(comboBox1.Text, textBox1.Text); private void button6_Click(object sender, EventArgs e) if (textBox1.Text.Length 5) MessageBox.Show(被監(jiān)控的客戶端IP地址不允許空, 確信正確, MessageBoxButtons.OK ); return; Pro
18、gram.order_string = RESTART; rev_thread.send_monitor_to_client(comboBox1.Text, textBox1.Text); private void button7_Click(object sender, EventArgs e) if (textBox1.Text.Length 5) MessageBox.Show(被監(jiān)控的客戶端IP地址不允許空, 確信正確, MessageBoxButtons.OK); return; Program.order_string = NO LINK; rev_thread.send_monitor_to_client(comboBox1.Text, textBox1.Text); private void button8_Click(object sender, EventArgs e) if (textBox1.Text.Length 0) send_all_screen = true; IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(ip_address), port); SendDataThread send_thread = new SendDataThre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備退貨合同范本
- 禮品行業(yè)中的渠道拓展與分銷策略
- 禮儀與職場著裝藝術(shù)
- 西充租房合同范本
- 2025至2030年中國芝麻芥絲數(shù)據(jù)監(jiān)測研究報告
- 科技型企業(yè)創(chuàng)新管理的路徑與方法
- 2025年民航西北空管局應(yīng)屆畢業(yè)生招聘(30人)筆試參考題庫附帶答案詳解
- 電商物流成本管理與供應(yīng)鏈優(yōu)化整合
- 2025年度網(wǎng)絡(luò)安全合作經(jīng)營協(xié)議書范本
- 二零二五年度工傷賠償協(xié)議范本(教育機(jī)構(gòu))
- 火鍋店運(yùn)營管理的問題與解決方案
- 安全技術(shù)管理專業(yè)畢業(yè)實習(xí)報告范文
- CJJ2-2008城市橋梁工程施工與質(zhì)量驗收規(guī)范
- 病媒生物防治操作規(guī)程
- 2024年社會工作者《社會工作實務(wù)(中級)》考試真題必考題
- 德育教育研究課題申報書
- (高清版)JTG 3810-2017 公路工程建設(shè)項目造價文件管理導(dǎo)則
- 《煤礦重大事故隱患判定標(biāo)準(zhǔn)》試題及答案
- 學(xué)前兒童表演游戲的組織與指導(dǎo)(學(xué)前兒童游戲課件)
- 建筑用真空陶瓷微珠絕熱系統(tǒng)應(yīng)用技術(shù)規(guī)程
- (高清版)DZT 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬
評論
0/150
提交評論