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

正文內(nèi)容

畢業(yè)論文-modbus通信協(xié)議在tcpip上的實(shí)現(xiàn)-文庫吧資料

2024-11-15 20:59本頁面
  

【正文】 initial failed!”,“ Send”, MB— ICONSTOP); Return; }//套接字初始化 CSocket ChatSend, Server;//構(gòu)造 2個套接字對象, nPort是 socket的端口號。 服務(wù)器緊接著就調(diào)用 accept(接受) ,以便把遠(yuǎn)地客戶進(jìn)程發(fā)來的連接請求提取出來。服務(wù)器在調(diào)用 bind 后,還 必須 調(diào)用 listen(收聽) 把套接字設(shè)置為 被動方式 ,以便隨時接受客戶的服務(wù)請求。例如,在服務(wù)器端調(diào)用 bind 時 就是 把熟知端口號和本地 IP地址填寫到已創(chuàng)建的套接字中。 (3) 通信完畢后,應(yīng)用進(jìn)程通過一個關(guān)閉套接字的系統(tǒng)調(diào)用通知操作系統(tǒng)回收與該 “號碼 ”相關(guān)的所有資源。 (2) 操作系 統(tǒng)為這些資源的總和用一個叫做套接字描述符的號碼來表示,并把此號碼返回給應(yīng)用進(jìn)程。ve 代碼低些,但是其 安全 性與規(guī)范性使它大受歡迎。 STL3。 泛型編程語言。 面向?qū)ο蟮?C++。 現(xiàn)在 C++由以下四個子語言 組成: C 子語言。利用 C++的封裝性開發(fā)者可以更容易理解和操作各種窗口對象;利用C++的派生性開發(fā)者可以減少開發(fā)自定義窗口的時間和創(chuàng)造出可重用的代碼;利用虛擬性可以在必要時更好的控制窗口的活動。更令人興奮的是利用 C++的封裝功能使開發(fā)者擺脫 Windows 中各種句柄的困擾,只需要面對 C++中的對象,這樣一來使開發(fā)更接近開發(fā)語言而遠(yuǎn)離系統(tǒng)。使用 MFC 庫開發(fā)應(yīng)用程序可以減少很多工作量。 MFC( Microsoft Fundamental Classes)是 Visual C++開發(fā)環(huán)境所帶的類庫,在該類庫中提供了大量的類,可以幫助開發(fā)人員快速建立應(yīng)用程序。 多態(tài)性:是指同一消息被不同 的對象界首市,可以解釋為不同意義的能力,會產(chǎn)生不同的行為。 面向?qū)ο蠹夹g(shù)的基本特征為: 繼承性:繼承性是指一個新類可以從現(xiàn)有的類中派生出來,新類具有父類中的所有特性,直接繼承父類的方法和數(shù)據(jù),新類的對象可以調(diào)用該類及父類的成員變量和成員函數(shù)。 程序特點(diǎn):對類(對象的存在形式)進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì)。面向?qū)ο蠓椒ǖ谋举|(zhì),就是強(qiáng)調(diào)從客觀事物固有的事物出發(fā)來構(gòu)造系統(tǒng),用 人類常用的思維方式來認(rèn)、理解和描述事物。而 Visual C++是 Windows 環(huán)境下最主要的開發(fā)環(huán)境,它支持面向?qū)ο缶幊?,并提供可視化編程? 應(yīng) 用 進(jìn) 程套 接 字T C P客 戶應(yīng) 用 進(jìn) 程套 接 字T C P因 特 網(wǎng)因 特 網(wǎng)客 戶由 操 作 系統(tǒng) 控 制由 應(yīng) 用程 序 控制 第四章 課題的 具體實(shí)現(xiàn)流程 編程環(huán)境 VC++與面向?qū)ο? Windows 編程采用的是面向?qū)ο蟮姆椒?( Object Oriented Programming,簡稱 OOP) 。 套接字( Socket)就是由操作系統(tǒng)提供的一組有關(guān) TCP/IP 的 API1。內(nèi)部過程一旦執(zhí)行完畢,控制權(quán)就又通過系統(tǒng)調(diào)用接口返回給應(yīng)用進(jìn)程。操作系統(tǒng)將此接口再將控制權(quán)傳遞給計(jì)算機(jī)的操作 系統(tǒng)。對程序員來說,每一個系統(tǒng)調(diào)用和一般程序設(shè)計(jì)中的函數(shù)調(diào)用非常相似,只是系統(tǒng)調(diào)用是將控制權(quán)傳遞給了操作系統(tǒng)。 ( 7) close()函數(shù) 一旦不使用,通過該函數(shù)關(guān)閉套接字。 ( 6) send()和 recv()函數(shù) TCP 連接建立以后,數(shù)據(jù)即可被傳送。 addr:是一個 sockaddr_in 結(jié)構(gòu)指針,包含一組客戶端的端口號、 IP 地址等信息。 語法: SOCKET accept ( SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen )。這個新的套接字連接到客戶機(jī)的套接字,而將套接字號返回到服務(wù)器。 ( 5) accept 函數(shù) 為了完成連接,服務(wù)器必須發(fā)送 accept()函數(shù)來指定先前在 listen()調(diào)用中所指定的套接字號。 backlog:表示等待連接的最大隊(duì)列長度。 語法: int listen ( SOCKET s, int backlog )。 namelen: name 緩沖區(qū)的長度。 s:標(biāo)識一個套接字。 } ( 3) connect()函數(shù) 為了初始化一個連接,客戶機(jī)必須發(fā)送 connect()函數(shù)來制定套接字號、遠(yuǎn)程 IP 地址和遠(yuǎn)程監(jiān)聽端口號。 if (bind(s,(LPSOCKADDR)amp。 //內(nèi)部網(wǎng)絡(luò)協(xié)議 TCP\UDP 等 = htons(port)。 sockaddr_in addr。 例如,創(chuàng)建一個套接字 s,將其綁定到 502 端口上,其代碼如下: int port = 502。 namelen:確定 name 緩沖區(qū)的長度。 s:是一個套接字。 bind() 函數(shù) 在套接字與所指定的端口間建立連接。 protocol:標(biāo)識一個特殊的協(xié)議被用于這個套接字,通常為 0,表示采用默認(rèn)的TCP/IP 協(xié)議。 af: 標(biāo)識一個地址家族,通常為 AF_INET。 socket 函數(shù)用于創(chuàng)建一個套接字。套接字創(chuàng)建時沒有地址( IP 地址和端口號)。 該程序設(shè)計(jì)中用到的套接字如下所示: ( 1) socket() 函數(shù) Socket() 函數(shù)用于創(chuàng)建一個套接字。原始套接字允許直接訪問低層的協(xié)議,如 IP、 ICMP 協(xié)議,該套接字常用于訪問服務(wù)器中配置的新設(shè)備。流式套接字提供了一個面向連接的、可靠的、 數(shù)據(jù)無錯且按順序接收的服務(wù),這種套接字對應(yīng)的是面向連接的傳輸協(xié)議,如 TCP/IP 協(xié)議簇中的 TCP。我們知道,如果一個文件被打開,可以通過文件句柄對文件進(jìn)行讀寫操作,套接字也一樣,只不過套接字提供的函數(shù)更多一些。四個域如圖 2 所示, Transaction Identifier 為傳輸標(biāo)志, Protocol Identifier 為協(xié)議標(biāo)志,Length 是長度域 , Unit Identifier 是單元標(biāo)志。 M O D B U S服 務(wù) 器T C P / I PM O D B U S服 務(wù) 器T C P / I PM O D B U S客 戶 機(jī)T C P / I PM O D B U S客 戶 機(jī)T C P / I PM O D B U S 客 戶機(jī) 串 行 連 接客 戶 機(jī)T C P / I P 網(wǎng) 關(guān)服 務(wù) 器T C P / I P 網(wǎng) 關(guān)M O D B U S服 務(wù) 器 串 機(jī)連 接M O D B U S服 務(wù) 器 串 機(jī)連 接M O D B U S T C P / I PM O D B U S 串 行連 接 第三章 MODBUS 在 TCP/IP 上的實(shí)現(xiàn)與分析 應(yīng)用層 MODBUS 協(xié)議描述 TCP/IP 上的 MODBUS 數(shù)據(jù)應(yīng)用單元 MODBUS TCP/IP 是在 TCP/IP 網(wǎng)絡(luò)協(xié)議加上 MODBUS 應(yīng)用層協(xié)議 , 形成五層開放式體系結(jié) 構(gòu) , 其中 MODBUS TCP 數(shù)據(jù)幀包括報文頭、功能代碼和數(shù)據(jù)三個部分 , 其結(jié)構(gòu)如圖 1 所示。 具體模型如下圖所示: M O D B U S 服 務(wù) 器請 求指 示證 實(shí) 響 應(yīng)M O D B U S 客 戶 機(jī) 總體通信模型構(gòu)建 如下圖 3 所示, MODBUS TCP/IP 的通信系統(tǒng)可以包括不同類型的設(shè)備: 連接至 TCP/IP 網(wǎng)絡(luò)的 MODBUS TCP/IP 客戶機(jī)和服務(wù)器設(shè)備。 MODBUS 指示: MODBUS 指示是服務(wù)器側(cè)接受的請求報文。 這個客戶機(jī) /服務(wù)器模型基于 4種報文類型: MODBUS 請求: MODBUS 請求是客戶機(jī)在網(wǎng)絡(luò)上發(fā)送用來啟動事務(wù)處理的報文。 客戶方: a.打開一通信通道,并連接到服務(wù)器所在的主機(jī)的特定端口; b.向服務(wù)器發(fā)出服務(wù)請求報文,等待并接收應(yīng)答;繼續(xù)提出請求; C,請求結(jié)束后關(guān)閉通信通道并終止。服務(wù)完成后,關(guān)閉此新進(jìn)程與客戶的通信鏈路,并終止; d.返回第二步,等待另外的客戶請求; e.關(guān)閉服務(wù)器。 服務(wù)器方:首先服務(wù)器方要啟動,偵聽客戶方是否有連接請求,并根據(jù)請求提供相應(yīng)服務(wù): a.打開一通信通道并告知本地主機(jī),它愿意在某一公認(rèn)地址端口上接受客戶請求,或者由 開發(fā)人員自己指定端的地址,此時端口地址應(yīng)大于 1 024B,一般不超過 5 000B; b.等待客戶請求到達(dá)該端口; c.接收到重復(fù)服務(wù)請求時,處理該請求并發(fā)送應(yīng)答信號。客戶機(jī) /服務(wù)器模式在操作過程中采取的是主動請求方式??梢詫CP/IP 棧進(jìn)行參數(shù)配置,以適用對不同產(chǎn)品或系統(tǒng)的不同特定約束進(jìn)行數(shù)據(jù)流控制、地址管理和連接管理。 TCP/IP 棧層 TCP/IP 棧提供了一個接口,用來管理連接、發(fā)送和接收某些參數(shù)配置。 訪問控制模塊管理 在某些至關(guān)重要的場合,必須禁止無關(guān)的主機(jī)對設(shè)備內(nèi)部數(shù)據(jù)的訪問。 TCP502 端口的監(jiān)聽是為 MODBUS 通信保留的。 TCP 管理層進(jìn)行兩方面的管理: 連接管理 在客戶機(jī)和服務(wù)器的 MODBUS 模塊之間的通信需要 TCP 管理模塊。 MODBUS 后端接口 MODBUS 后端接口是一個從 MODBUS 服務(wù)器到定義應(yīng)用對象的用戶應(yīng)用之間的接口。這些操作的處理對應(yīng)用程序開發(fā)員來說都是透明的。 MODBUS 客戶機(jī)接口 MODBUS 客戶機(jī)接口提供一個接口,使得用戶應(yīng)用能夠生成各類 MODBUS服務(wù)的請求,該服務(wù)包括對 MODBUS 應(yīng)用對象的訪問??蓪?MODBUS 通信應(yīng)用層分為四個小模塊 ,如下: MODBUS 客戶機(jī) MODBUS 客戶機(jī)允許用戶應(yīng)用顯式控制與遠(yuǎn)程設(shè)備的信息交換。此接口由四個區(qū)域組成:離散量輸入、離散量輸出(線圈)、輸入 寄存器和輸出寄存器。 通信應(yīng)用層 一個 MODBUS 設(shè)備可提供一個客戶機(jī)或服務(wù)器的 MODBUS 接口。 第六章 : 總結(jié)與展望。 第四章 : 提出實(shí)現(xiàn)該課題的主要流程,分為幾個步驟,每個步驟應(yīng)做的工作,以及用到的編程環(huán)境和編程語言。 第三章 :為該課題建立理論基礎(chǔ)。 論文的結(jié)構(gòu)安排 本論文共分五章,各章主要內(nèi)容如下: 第一章 : 介紹本論文所研究的背景,即該課題的實(shí)際應(yīng)用價值。最后對整個課題的實(shí)現(xiàn)進(jìn)行一個總結(jié),帶給讀者一個實(shí)現(xiàn)該課題的基本框架,以及在實(shí)現(xiàn)該課題過程中自己的一些見解以、疑問及學(xué)到的知識和技術(shù)。摘取程序中最重要的部分進(jìn)行分析。本文首先需要將 TCP/IP應(yīng)用層以下作為一個整體,而這個整體和上層的接口即是套接字接口。對于軟件開發(fā)而言,編程環(huán)境和編程 語言很重要,這會對工作的復(fù)雜程度帶來很大的影響。本文涉及到的理論知識主要包括 MODBUS 協(xié)議結(jié)構(gòu)以及套接字的原理。在拿到一個課題時,首先需要為課題的實(shí)現(xiàn)構(gòu)建一個模型,對于該課題而言,應(yīng)想到怎樣在一臺設(shè)備上實(shí)現(xiàn)MODBUS 協(xié)議,同時,該課題是實(shí)現(xiàn)通信,那么就必然不只一臺設(shè)備,繼而想到兩臺設(shè)備間的通信模型,最后到多臺設(shè)備的通信結(jié)構(gòu)。 本文的工作 本文主要告訴讀者該課題的實(shí)現(xiàn)過程。 雖然 MODBUS /TCP 由于在傳輸層采用 TCP 協(xié)議,而使其不得不在傳輸層協(xié)議以下的諸層采取更有效的實(shí)時性策略。在輸入輸出數(shù)據(jù)循環(huán)傳 輸?shù)那闆r下,永久的連接通常維持在客戶和服務(wù)器之間,只有在發(fā)生特殊事件而有必要傳送參數(shù)和診斷報文時,連接才能在每一次數(shù)據(jù)傳送后被關(guān)閉,需要時再次建立。 一旦客戶和服務(wù)器之間的 TCP/IP 連接建立,同樣的連接可以根據(jù)要求的方向用來傳輸任意數(shù)量的用戶數(shù)據(jù)。服務(wù)器使用端口 502 作為 MODBUS /TCP連接的端口。另外地址和校驗(yàn)在 MODBUS /TCP 中也由底 層的 TCP 協(xié)議來完成。因此在 TCP/IP 網(wǎng)絡(luò)中MODBUS /TCP 使用傳輸控制協(xié)議 (TCP)進(jìn)行 MODBUS 應(yīng)用協(xié)議的數(shù)據(jù)傳輸
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1