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

正文內(nèi)容

基于c#的遠程液位監(jiān)控軟件設計畢業(yè)設計(論文)(文件)

2025-08-01 08:28 上一頁面

下一頁面
 

【正文】 于 .NET 框架的 VS20xx 編程 環(huán)境設計, .NET 是一個由 Microsoft .NET Framework SDK 中包括的類、值類型和接口 構成 的庫。C/S 結構的根本原理是將大的任務分解為多個子任務,由多臺計算機協(xié)作完成。 ( 2)數(shù)據(jù)的儲存管理 能力 較為透明。在 Inter 上的 主機 通常都會運行多個應用軟件,并且提供多種服務。 湖南理工學院畢業(yè)設計(論文) 5 ( 1) 服務器 偵聽 : 服務器 端 socket 不是定位 詳細 的 客戶端 socket,而是處于 等候 連接的 狀況 ,實時監(jiān)測網(wǎng)絡 狀況 。而 服務器 端 socket還將 處于 監(jiān)聽狀態(tài) , 等待 接收其他 客戶端 socket 的連接 申請 。同樣客戶端也先創(chuàng)建 socket()套接字,獲取要連接服務器的 IP 和端口,使用 connect()方法發(fā)送連接請求,而后使用 receive()/send()函數(shù)進行數(shù)據(jù)的讀 /寫,傳輸完成時使用 close()函數(shù)關閉客戶端。本文提供了兩種通信協(xié)議,分別是面向連接的 TCP/IP 協(xié)議和無連接的 UDP 協(xié)議,然而在工業(yè)控制中必須保證數(shù)據(jù)傳輸?shù)目煽啃裕虼宋覀冞x擇了安全性高的 TCP/IP 協(xié)議作為通訊協(xié)議。在 工業(yè)控制中,往往需要保證數(shù)據(jù)傳輸?shù)膶崟r性,同步通信模式顯然不符合要求,因此我們選擇能實時傳輸?shù)漠惒酵ㄐ拍J?。 創(chuàng)建好項目后,打開工具箱,拖出我們所需的工具控件如: Lable、 Button、 TextBox 等進行界面設計,之后修改其對應的屬性,雙擊后則可進行其他部分的代碼編寫。具體編程可分為以下步驟: ( 1)建立服務器連接 首先要創(chuàng)建 Socket 對象,使用 Socket 類的構造方法實現(xiàn): Socket listener = new Socket(, )。 另一種是 IP 地址的連接方式: IPAddress ipAddress = [0]。 然后通過 Listen 方法監(jiān)聽該端口上的連接申請,當監(jiān)聽到端口的連接申請后 。在 使用BeginAccept 方法之前, 必需調(diào)用 Listen 方法來 監(jiān)聽 連接申請, BeginAccept 的函數(shù)原型為: BeginAccept(AsyncCallback AsyncCallback, Ojbect state)。 IPEndPoint iep = new IPEndPoint(local,13000)。 (new AsyncCallback(Accept), listener)。異步 通信 用 BeginSend 和 EndSend 方法來 完成 數(shù)據(jù)發(fā)送。 state 參數(shù)一定得包含用來通訊的連接。當應用程序使用 BeginSend 方法時,系統(tǒng)將運用一個單獨的線程完成特定的回調(diào)方法,并阻止 EndSend,直到 Socket 發(fā)送了申請的字節(jié)數(shù)或引發(fā)了異常。 int bytesSent = (ar)。操作完成時,此對象會傳軟 EndReceive方法;返回值:使用異步方法讀取 IAsyncResult。如需一直阻塞到操作完成時則應使用 Receive 方法進行重載。 } catch (Exception e) { } } private static void ReceiveCallback(IAsyncResult ar) { try { StateObject state = (StateObject)。 (,0,0,new AsyncCallback(ReceiveCallback), state)。 當數(shù)據(jù)發(fā)送到緩沖區(qū)中, BeginReceive 方法嘗試 從 buffer 數(shù)組中 獲取 長度為 的數(shù)據(jù)塊,并且返回接收到的數(shù)據(jù)量 bytesRead。EventWaitHandle 即事件等待句柄,他允 許線程通過操作系統(tǒng)互發(fā)信號和等待彼此的信號來達到線程同步的目的。該方法發(fā)送一個信號給操作系統(tǒng),讓處于等候的某個線程從阻塞狀態(tài)轉變成繼續(xù)運行,即 WaitOne方法的線程不在阻塞; (3)WaitOne 方法:阻塞當前線程,直到當前的等候句柄收到信號。 湖南理工學院畢業(yè)設計(論文) 13 圖 client 界 面設計 Socket 編程 客戶端的 Socket 編程同樣分為以下兩個步驟: ( 1)建立客戶端連接 首先要創(chuàng)建 Socket 對象的實例,可以經(jīng)過 Socket 類的構造方法來實現(xiàn): Socket socket= new Socket(, )。在異步模式下,客戶端則 使用 BeginConnect 方法和 EndConnect 方法來 完成 與服務器的連接 ,BeginConnect 方法原型為: (EndPoint, AsyncCallback, Object); 其參數(shù): remoteEP:表示遠程主機 IP地址和端口號; callback: AsyncCallback委托; state:一個對象,它包含此請求的 狀態(tài)信息;返回值: IAsyncResult,它引用異步連接。 IPEndPoint iep=new IPEndPoint(ip,13000)。 } catch (Exception e) { } } ( 2)發(fā)送與接收數(shù)據(jù) 在建立了套接字的連接后,就可以服務器端和客戶端之間進行數(shù)據(jù)通信了。然后分別講解了服務器和客戶端的實現(xiàn)代碼,包括界面設計和 SOCKET 編程設計。因此本文不做描述,僅介紹 C環(huán)境下生成 .dll控件的方法,具體步驟如下: ( 1) 創(chuàng)建一個應用程序解決方案,并添加一個 Windows 控件庫項目 ,如圖 圖 創(chuàng)建解決方案 ( 2) 更改 “ 項目屬性 應用程序 程序集信息 ” 設置,勾選 “ 使程序集 COM 可見 ”,如圖 圖 更改項目屬性 湖南理工學院畢業(yè)設計(論文) 16 ( 3) 更改 “ 項目屬性 生成 ”屬性 ,勾選 “ 為 COM Interop 注冊 ”( 此處 若是 在debug 狀態(tài)下修改的,那在調(diào)到 release 狀態(tài)下還 應該 再設置一次 )如圖 圖 更改項目屬性 ( 4) 修改 文件, 增加 [assembly: AllowPartially TrustedCallers()]項(需要使用 名稱空間) ,如圖 所示 圖 修改 文件 ( 5) 添加一個 Windows 用戶控件 湖南理工學院畢業(yè)設計(論文) 17 ( 6) 為控件類 增加 GUID,這個編號將用于 B/S 系統(tǒng)的客戶端 應用 時 調(diào)用 ( 能夠使用 工具 創(chuàng)建 GUID 菜單創(chuàng)建一個 GUID,再復制) ,如圖 所示 圖 添加 GUID ( 7) 為了 使 ActiveX 控件 獲取 客戶端的信任,控件類還需要 完成 一個名為“IObjectSafety” 的接口,要 建立 該接口(注意,不能修改該接口的 GUID 值), 代碼如下: ( 8) 然后在控件類中繼承并 完成 該接口 ,代碼如下 湖南理工學院畢業(yè)設計(論文) 18 ( 9) 引用封裝的 ,代碼如下 湖南理工學院畢業(yè)設計(論文) 19 ( 10)進行 封裝 ,代碼如下 ( 11) 打 包發(fā)布 ActiveX,與普通的 Windows Form 應用程序的安裝設置幾乎一樣, 單 有一個地方需要注意,將前面創(chuàng)建的用戶控件項目作為主輸出項目,并 設定 其 Register 屬性為 vsdrpCOM,如圖 圖 安裝部署 ( 12)將項目文件添加。 本章小結 本章開頭提出了用 C語言生成的 AxtiveX 控件并非真正意義上的 ActiveX控件,而是 .dll 控件,且 能夠滿足 VS20xx, Web 等多種軟件調(diào)用。 圖 啟動服務器 運行客戶端 , 生成 client 界面。 圖 客戶端接收測試信息 測試成功后 , 服務器和客戶端可相互發(fā)送接收數(shù)據(jù) , 內(nèi)部設定先發(fā)送后接收的機 制 。測試表明 該軟件能夠?qū)崿F(xiàn)對液位過程的實時監(jiān)測和遠程控制,還能有效的避免了資源浪費和內(nèi)存泄露等缺陷。然而目前軟件僅支持遠程客戶端和服務器之間進行點對點通信,若 實現(xiàn)多端口多服務器之間進行通信,可滿足工業(yè)液位過程監(jiān)控的系統(tǒng)化管理,對提高企業(yè)生 產(chǎn)效率有著重大意義。 本次設計能夠順利完成,首先我要感謝丁躍 澆老師。同時我還要感謝我的寢室同學,他們在我迷惑的時候為我無私的提供了幫助。 using 。 using 。 using 。 public const int BufferSize = 1024。 Socket listener = new Socket(AddressFamily. InterNetwork, , )。 private String content_send = 。 IPAddress ipAddress = ()。 (服務器已啟動,正在等待連接?? )。 } private void AcceptCallback(IAsyncResult ar) { ()。 if () Send(handler, wele here!)。 int bytesRead = (ar)。 (byteData, 0, , 0, new AsyncCallback(SendCallback), handler)。您是否確實要關閉它? , 提示框 , )。 } if (answer == ) { return。 } } /// summary /// 安全調(diào)用 text_receive 控件 /// /summary private void Receive_text() { = new Thread(new ThreadStart())。 (d, new object[] { text })。 } private void ThreadSend() { (content_send)。 } } private void Form1_Load(object sender, EventArgs e) { } } } } 湖南理工學院畢業(yè)設計(論文) 34 客戶端: using System。 using 。 using 。 } public class StateObject { public Socket workSocket = null。 } private ManualResetEvent connectDone = new ManualResetEvent(false)。 private String content_receive = 。 /// summary /// 連接客戶端 /// /summary /// param name=sender/param /// param name=e/param private void but_con_Click(object sender, EventArgs e) { if ( == || == ) { (請輸入要連接的 IP和端口 )。 (remoteEP, new AsyncCallback(ConnectCallback), client)。 (ar)。 = client。 int bytesRead = (ar)。 。 Receive_text()。 }
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1