freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)項目-在線瀏覽

2025-02-05 15:19本頁面
  

【正文】 發(fā)新一代企業(yè)級商業(yè)應(yīng)用程序、為企業(yè)贏得核心競爭優(yōu)勢打開了勝利之門。 SOL 語言簡單介紹 SQL 是英文 Structured Query Language 的縮寫,意思為結(jié)構(gòu)化查詢語 6 言。按照 ANSI(美國國家標(biāo)準(zhǔn)協(xié) 會)的規(guī)定, SQL 被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。 在眾多的 SQL 命令中, select 語句應(yīng)該算是使用最頻繁的。 select 語句中位于 select 關(guān)鍵詞之后的列名用來決定哪些列將作為查詢結(jié)果返回。select 語句中位于 from 關(guān)鍵詞之 后的表格名稱用來決定將要進(jìn)行查詢操作的目標(biāo)表格。與數(shù)據(jù)庫相連 , ADO. NET提供了如下 3種方式 : 通過 ODBC相連 ; 通過 OLEDB相連 ; 直接與 SQL Server相連。在這個系統(tǒng)中,使用 SQL Server作為數(shù)據(jù)庫,保證了系統(tǒng)的高效 [4]。 ASP. NET采取了斷開連接方式的數(shù)據(jù)結(jié)構(gòu)。 ADO. NET 的另一個創(chuàng)新是引人了數(shù)據(jù)集 (Dataset)。數(shù)據(jù)集對數(shù)據(jù)源一無所知,它們可以由程序或通過從數(shù)據(jù)倉庫中調(diào)入數(shù)據(jù)而被生成、填充。 3 網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計與實現(xiàn) 需求分析 系統(tǒng)簡介 該系統(tǒng)的兩個發(fā)送和接受模塊的組件是在 VC++ 開發(fā)的,而 DirectShow應(yīng)用程序和用戶管理是在 Visual 環(huán)境下開發(fā)的。 系統(tǒng)運(yùn)行環(huán)境 1:硬件平臺 Intel 或 AMD平臺 , CPU , 內(nèi)存 256M 以上 , 硬盤 30G以上。 系統(tǒng)功能需求 系統(tǒng)需要完成以下功能: 1 用戶的管理,包括用戶注冊、冊除、修改等。服務(wù)器端把視頻接受過來,然后經(jīng)過 MPEG4 解碼后,最后顯示在窗口上;客戶端把捕獲到的視頻流經(jīng)過編碼后發(fā)送出去,這些都是應(yīng)用層下層實現(xiàn)。 3 網(wǎng)絡(luò)通信模塊的建立,主要是交互驗證用戶的網(wǎng)絡(luò)連接所需信息,主要在應(yīng)用層實現(xiàn), 3. 2 系統(tǒng)設(shè)計 3. 2. 1 數(shù)據(jù)庫設(shè)計 一般要求數(shù)據(jù)庫中的 關(guān)系模式都達(dá)到第三范式( 3NF)。 表的設(shè)計 表的設(shè)計又是數(shù)據(jù)庫設(shè)計中最重要的部分,因為它決定了數(shù)據(jù)庫的關(guān)系模式能達(dá)到哪個范式,是否會出現(xiàn)數(shù)據(jù)冗余的現(xiàn)象,是否存在數(shù)據(jù)不一致的風(fēng)險,是否能達(dá)到實體完整性、數(shù)據(jù)完整性和用戶定義完整性的要求。 圖 表 Users的詳細(xì)說明 UserID Smallint(2) 是種子會自動加 1 Password Char(32) 采用 MD5 加密的 32位字符 UserName Varchar(50) 登陸用戶名 8 IsAdmin Bit(1) 判斷是否是管理員 存儲過程的設(shè)計 存儲過程 ( Stored Procedure) 是一組為了完成特定功能的 SQL 語句集 , 完成某一個特定的功能 , 經(jīng)編譯后存儲在數(shù)據(jù)庫中。用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。而且數(shù)據(jù)庫專業(yè)人員可隨時對存儲過程進(jìn)行修改,但對應(yīng)用程序源代碼毫無影響(因為應(yīng)用程序源代碼只包含存儲過程的調(diào)用語句),從而極大地提高了程序的可移植性。如果某一操作包含大量的TransactionSQL代碼或分別被多次執(zhí)行,那么存儲過程要比批處理的執(zhí)行速度快很多。而批處理的TransactionSQL 語句在每次運(yùn)行時都要進(jìn)行編譯和優(yōu)化,因此速度相對要慢一些。對于同一個針對數(shù)據(jù)庫對象的操作(如查詢、修改),如果這一操作所涉及到的 TransactionSQL 語句被組織成一存儲過程,那么當(dāng)在客戶計算機(jī)上調(diào)用該存儲過程時,網(wǎng)絡(luò)中傳送的只是該調(diào)用語句,否則將是多條 SQL 語句,可見存儲過程可以有效提高網(wǎng)絡(luò)性能。 由于存儲過程有以上諸多優(yōu)點(diǎn),所以在很多系統(tǒng)中,幾乎所有的功能都是用存儲過程來實現(xiàn),在程序中直接調(diào)用存儲過程并通過存儲過程的返回值來確定執(zhí)行后的狀態(tài)。采用的原因除了上述外,還有因為直接使用 SQL或 TransactSQL會帶來安全方面的風(fēng)險,比如 Select語句字符串參數(shù)由于用戶的有意的輸入,會執(zhí)行超出用戶操作的權(quán)限。啟動企業(yè)管理器,如圖 對數(shù)據(jù)庫進(jìn)行分 離。附加數(shù)據(jù)庫運(yùn)行代碼:sp_attach_db[dbname=] ‘ dbname’ [filename=] ‘ filename_n’ 其中dbname 是數(shù)據(jù)庫名字, filename_n 是數(shù)據(jù)庫文件絕對位置??蛻舳擞脩艨梢韵蚍?wù)器發(fā)送連接請求,連接被同意后,捕捉視頻設(shè)備的視頻數(shù)據(jù),然后經(jīng)過網(wǎng)絡(luò)發(fā)送 filter發(fā)送給服務(wù)器端。操作,用戶操作是把接受視頻數(shù)據(jù)接受顯示在窗口上。用 戶管理模塊包含用戶修改,主要是密碼的修改;冊除和增加用戶,只要管理員才有這權(quán)限。當(dāng)具有視頻查看權(quán)限的用戶登陸后會啟動連接接受模塊,該模塊將啟動基于 TCP協(xié)議的監(jiān)聽服務(wù)器 (TcpListener類 )監(jiān)聽遠(yuǎn)程的 TCP連接請求,采用異步委托方式。網(wǎng)絡(luò)視頻數(shù)據(jù)接受 filter需要自己開發(fā),并用 Regsvc32命令注冊后才能使用。其中視頻數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)協(xié)議采用RTP協(xié)議,需要 jthread和 jrtplib庫,服務(wù)器數(shù)據(jù)流圖如 系統(tǒng) 服務(wù)器 客戶端 用戶管理 視頻處理 視頻處理 連接請求 添加用戶 用戶冊除 用戶修改 連接接受 11 用戶 1 用戶 2 用戶 3 連接同意 連接不同意 不同意 圖 服務(wù)器數(shù)據(jù)流圖 2:客戶端模塊 客戶端模塊分為連接請求模塊、視頻處理模塊。如果連接請求被接受,就會啟動視頻處理模塊向服務(wù)器發(fā)送視頻數(shù)據(jù),并等待遠(yuǎn)程發(fā)來斷開消息。網(wǎng)絡(luò)視頻發(fā)送 filter要自己開發(fā),并用 Regsvc32命令注冊后才能使 用。其中視頻數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)協(xié)議采用 RTP協(xié)議,需要 jthread和 jrtplib庫客戶端數(shù)據(jù)流圖如圖 同意 不同意 圖 客戶端數(shù)據(jù)流圖 系統(tǒng)功能實現(xiàn) 整個系統(tǒng)組件部分采用 C++, DirectShow 應(yīng)用層開發(fā) 和其它功能都用 C完成, 面具體講述一下整個系統(tǒng)的實現(xiàn)細(xì)節(jié)。使用 間, 主要代碼如下: MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider()。 采用 C的 MD5加密類,能很方便的實現(xiàn) MD5加密,不過 MD5散列值的位數(shù)是根據(jù)操作系統(tǒng)不同而不同。 MD5編碼雖然保密性好,但是效率不是很高。 服務(wù)器視頻處理模塊設(shè)計 視頻處理界面如圖 13 圖 用戶操作界面 只有設(shè)置配置信息后,才能查看視頻,保存視頻功能目前沒有實現(xiàn)。 if(!(filePath)) { 開放 textbox,設(shè)置 button。 } else { 關(guān)閉 textbox,設(shè)置 button。 } 當(dāng)點(diǎn)擊‘設(shè)置’按鈕時發(fā)生 , 會把信息寫入 xml文件。 XmlTextWriter xtw = new XmlTextWriter(filePath, UTF8)。語句得到 , 語句的意思是應(yīng)用程序目錄下文件名為 。 //對空白部分的處理方式 = 。 if ((屬性內(nèi)容 )) { //移動到該屬性的節(jié)點(diǎn)上 ()。 } } } if(reader != null) ()。監(jiān)聽客戶端線程應(yīng)該是一直運(yùn)行著所以是循 環(huán)的方式,循環(huán)退出條件應(yīng)該在主線程結(jié)束時設(shè) 15 置,這樣當(dāng)主線程退出時,那么監(jiān)聽客戶端線程也將退出。監(jiān)聽客戶端方式采用異步委托,因為如果采用同步方式,那么程序會發(fā)生阻塞那么當(dāng)主線程設(shè)置退出條件變量后將不產(chǎn)生效果,所以不會使程序完全退出。具體的代碼實現(xiàn)如下: private ManualResetEvent tcpClientConnected = new ManualResetEvent(false)。 //線程啟動 ()。 } private void DoBeginAcceptTcpClient(TcpListener listener) { while (isRun) { ()。 // Wait until a connection is made and processed before // continuing. ()。 TcpClient client = (ar)。 } } 當(dāng)服務(wù)器器運(yùn)行時,會出現(xiàn)以下截面,如圖 16 圖 服務(wù)器啟動界面 當(dāng)客戶端到達(dá)時,會出現(xiàn)如下界面,如圖 圖 有遠(yuǎn)程客戶連接請求時的界面 當(dāng)點(diǎn)擊確定時,把用戶信息加入 Listbox控件圖 17 圖 用戶連接列表 然后 啟動視頻接受啟動,先在程序里尋找接受 Filter、解碼 filter、顯示 filter。尋找 filter的代碼如下: IEnumMoniker classEnum = null。 ICreateDevEnum devEnum = (ICreateDevEnum)new CreateDevEnum()。// Create an enumerator for the video capture devices //釋放 對象 (devEnum)。 //在隊列里尋找指定名字的 filter ,直到為空 while ((, moniker, ) == 0) { //typeof是確定運(yùn)行時類型 Guid iid1 = typeof(IPropertyBag).GUID。 moniker[0].BindToStorage(null, null, ref iid1, out iPropertyBagSource)。 if ((filterName)) moniker[0].BindToObject(null, null, ref iid0, out iBaseFilterSource)。其中 outpin是上級 filter輸出 pin,inpin是下級 filter輸入 pin。 //訪問非托管代碼的形式 [DllImport()] //顯示 filter屬性窗口 public static extern int OleCreatePropertyFrame ( IntPtr hwndOwner, //父窗口 int x,int y, //保留 [MarshalAs()] string lpszCaption, //窗口標(biāo)題 int cObjects,
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1