色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 根據(jù)VC的執(zhí)行機構(gòu)以太網(wǎng)控制系統(tǒng)的設(shè)計策略

          根據(jù)VC的執(zhí)行機構(gòu)以太網(wǎng)控制系統(tǒng)的設(shè)計策略

          作者: 時間:2010-04-26 來源:網(wǎng)絡(luò) 收藏

          系統(tǒng)采用Client/Server模式。通過轉(zhuǎn)串口模塊的配置軟件,將該模塊設(shè)置成服務(wù)器模式,而主控計算機上的控制軟件部分為客戶端,每次啟動由主控計算機主動連接??蛻舳撕头?wù)器采用面向連接的通信協(xié)議:控制計算機和模塊之間會建立一個虛擬連接,這個連接一旦建立,客戶端和服務(wù)器之間就可以把數(shù)據(jù)當作一個雙向字節(jié)流進行交換;如果連接建立不成功,則不會發(fā)送數(shù)據(jù)。另外,面向連接傳輸?shù)拿恳粋€報文都需要接收端確認,未確認報文被認為是出錯的報文。

          3.1 通信過程

          Socket有同步阻塞方式和異步非阻塞方式兩種使用,本系統(tǒng)應(yīng)用程序中創(chuàng)建了繼承于CAsyncSocket類的TestSocket類,它是一個異步非阻塞Socket封裝類。

          由于已經(jīng)將轉(zhuǎn)串口模塊設(shè)置為服務(wù)器模式,所以,主控計算機段的程序是作為客戶端出現(xiàn)的,該程序的編寫大致按照以下步驟進行:

          1) 首先調(diào)用WSAStartup函數(shù)來初始化套接字庫。

          2) 調(diào)用socket函數(shù)來創(chuàng)建一個套接字。

          3) 調(diào)用connect函數(shù)連接服務(wù)器,發(fā)出連接請求

          4) 服務(wù)器響應(yīng)連接請求后,與服務(wù)器開始進行交互操作(接收、發(fā)送數(shù)據(jù)等),直到請求結(jié)束。

          5) 調(diào)用closesocket關(guān)閉套接字,釋放套接字資源。

          6) 調(diào)用WSACleanup函數(shù)釋放相應(yīng)資源。

          客戶端程序與服務(wù)器的通信過程如圖3所示:

          圖3:面向連接服務(wù)的socket調(diào)用模型

          轉(zhuǎn)串口模塊中,服務(wù)器程序調(diào)用listen函數(shù)將此socket置于監(jiān)聽狀態(tài),讓這個socket對進來的連接進行監(jiān)聽并確認連接請求。當服務(wù)器端監(jiān)聽到來自客戶端的連接請求后,一個正在監(jiān)聽的socket將給將給每個請求發(fā)送一個確認信息,然后調(diào)用accept函數(shù),接著,面向連接的客戶通過調(diào)用connect函數(shù)啟動網(wǎng)絡(luò)對話。在客戶端和服務(wù)器端建立連接以后,雙方就可以通過send和recv或其它面向連接的Socket API函數(shù)進行網(wǎng)絡(luò)通信了。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉