999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一類多線程綜合通信管理器的設計和實現

2019-05-24 14:21:16陳容華李方方
無線互聯科技 2019年2期
關鍵詞:網絡通信

陳容華 李方方

摘 要:文章提出了在計算機系統工程中廣泛應用的集網絡通信與RS232串口通信等綜合信道通信管理器的功能需求,敘述了該通信管理器既可以作為通信服務器,又可以作為局域網前端通信控制器的具體工作模式,給出了該通信管理器的設計思路和具體實現方法,并描述了個部分的執行流程。

關鍵詞:多線程;網絡通信;串口通信;.Net;C#

隨著互聯網與物聯網技術的應用,各種與之相應的新技術和新應用層出不窮。但歸根到底,所有的應用都是基于對相關設備的運行和狀態信息進行采集、存儲及在網絡上進行傳輸。在當前的實際工程項目中,需要有這樣一類通信前置服務器,即可以與后臺客戶端進行通信,充當前端通信服務器,接收并處理來自這些客戶端的各類請求。另一方面,這種通信服務器又需要作為客戶端,與作為服務器端的現場設備進行相連,這類通信管理器廣泛應用于工業現場的數據采集和信息傳輸系統中。目前工程上開發的這類通信管理器都與具體的項目直接關聯,也就是與具體系統的數據傳輸規約直接關聯,這一類系統應用較好的通信控制器往往不能方便地移植到其他系統,嚴重制約了其推廣應用[1]。本文敘述設計和實現一種通用型的通信管理器的思路和方法,這種通信管理器將具體的數據通信規約與通信服務進行徹底分離,確保開發出的通信管理器更加具有通用性。涉及實現的通信服務器可接入不同類型的客戶端,盡管這些客戶端采用不同的通信技術,本通信服務器都能夠為這些不同類型的客戶端提供數據服務。

該通信管理器系統基于TCP/IP通信協議,使用較為成熟的開發平臺Visual studio IDE。圍繞提供了多種屬性和操作函數的Microsoft WinSocket控件及串口空間來編寫代碼,同時考慮系統通信的實時性,運用了多線程技術。

1 功能需求

前置通信服務器功能要求如下:(1)接收來自經授權的客戶端的連接請求,與客戶端建立TCP連接。(2)接收來自客戶端的數據報文,存儲、顯示并實時處理這些報文。(3)將這些報文通過各類接口(串口或Can總線等)轉發給有關現場設備。(4)接收現場運行的有關設備的上傳的各類報文信息,并將此報文信息進行存儲處理,同時回傳給客戶端[2]。

2 設計與實現

2.1 RS232通信實現

通信管理器的RS232通信部分使用了C#提供的SerialPort控件來實現對串口通信過程進行控制。該控件的命名空間為System.IO.Ports。

實際編程實現時,除需要設置這些屬性參數外,還需要調用SerialPort控件的常用函數。

SerialPort控件的常用事件為DataReceived,用該函數直接處理SerialPort 對象的數據接收事件。

系統啟動后,將首先初始化串口,設置串口號(支持多個串口同時通信)、通信波特率、數據位、校驗位、停止位。然后調用open函數打開串口。當串口SerialPort控件偵聽到有數據時,觸發DataReceived事件,啟動數據接收函數,將緩沖區的數據字節都入到一個數組中,然后通過該其他通信方式轉發到后臺客戶機中,并將這些通信報文存儲在本地日志文件中。

2.2 Socket控件類

本系統的網絡通信基于TCP/IP協議,一般此類協議實現的基本流程為:首先在服務器端新建一個通信套接字,服務器處于等待監聽狀態,但服務器端serverSocket并不定位具體的客戶端socket,而是實時監控網絡的狀態。當客戶端的某個連接套接字clientSocket向服務器發送連接請求(其目標是服務器的serverSocket)時,clientSocket必須知道serverSocket的地址和端口號,發出連接請求。當服務器socket監聽到或者是收到客戶端socket的連接請求時,服務器就立即響應客戶端的請求(有時可根據安全需要,拒絕客戶端的連接請求),建立一個新的Socket,把服務器Socket發送給客戶端,一旦客戶端確認連接,則連接建立。上述流程的實現都通過事件觸發產生。

由于前置通信服務器既需要為后臺客戶端提供接入服務,同時需要請求連接現場的監控設備,因此,本系統同時具備服務器和客戶機雙重通信功能,無疑增加了系統的復雜性。因此,本系統設計主要思想為:利用C#控件為服務器端實現與后臺客戶機進行通信,而通過創建若干個Socket對象來與現場監控設備(作為服務端,處在偵聽狀態,IP地址與端口號已知)進行連接。

為此,在通信服務器上,設置一個定時器,如50 ms,定時監測現場設備是否上線,當現場設備上線后,由于這些設備IP地址是固定的,通信服務器將循環掃描每個設備的上線狀態,并對未連接成功的遠端發起連接,如果檢測到連接成功狀態,將這些套接字放入一個Socket隊列中[3]。

程序執行中,當某一Socket有數據輸入時,啟動觸發事件,在DataArrival函數中讀入網絡中遠端的數據,放入某一隊列,由其他進程進行處理。

2.3 Tcplistener類與多線程

通信服務器需要對后臺管理機進行通信,此時,又要將它設置成服務模式,為此,需采用多線程技術。正好在C#中,針對網絡通信,提供了一個專門的類Tcplistener,這個類是對Socket Tcp協議封裝的接口,更便于用戶的開發。利用Tcplistenner類的各類函數,編程要點描述如下。

(1)建立Tcp監聽器TcpListener對象。

TcpListener serverListenner = new TcpListener (IPAddress.Any, IPAddr,Port);

其中IPAddress.Any是固定參數,IPAddr為本服務器的IP地址,Port為端口號。

(2)調用serverListenner對象的Start函數啟動偵聽。此時,新建一個新的線程tNetClient,定義為客戶端連接線程,并且啟動該線程。具體代碼如下。

listener.Start();

tNetClient = new Thread(AcceptClient);

tNetClient.IsBackground = true;

tNetClient.Start();

(3)當有客戶端連接進來,執行客戶端連接線程,具體代碼如下。

private void AcceptClient(){

while (true)

{

TcpClient thisClient = listener.AcceptTcpClient();

winSocketClients.Add(thisClient);

}

}

(4)通過Socket的Receive方法獲取客戶端發送的數據

byte [] resData = new byte[2048];

int kLen = s.Receive(resData);

(5)通過Socket的Send方法向客戶端發送數據

byte[] sendData=System.Text.Encoding.Default.GetBytes(“text”);

mySocket .Send(sendData);

程序將定時掃描各個連接套接字,如有遠程端點發過來的數據,則啟動接受程序,讀入數據,并存入緩存中,待其他線程處理。

3 結語

本文針對既需要為多個后臺工作站提供通信服務,又要同時接入多個遠程服務器的需求,設計出符合功能需求的綜合通信管理器,系統設計運用了各類控件技術和多線程編程技術。并用C#編程語言,實現了最終的系統。經實際運行測試,系統穩定可靠。

[參考文獻]

[1]詹姆斯·庫羅斯.計算機網絡:自頂向下方法[M].7版.北京:機械工業出版社,2018.

[2]尹圣雨.TCP/IP網絡編程[M].北京:人民郵電出版社,2014.

[3]邢彥辰.數據通信與計算機網絡[M].北京:人民郵電出版社,2011.

[4]Chenjx2014.RS-232通信程序設計[EB/OL].(2017-03-09)[2018-12-24].https://blog.csdn.net/haitaolang/article/details/60956456.

猜你喜歡
網絡通信
基于NoC架構的網絡通信抗干擾方法研究
海上軍用網絡通信的安全控制技術
基于網絡通信的智能照明系統設計
電子制作(2019年15期)2019-08-27 01:11:48
基于CAN總線的網絡通信信道的建模與研究
測控技術(2018年7期)2018-12-09 08:57:54
移動計算機網絡通信技術研究
電子測試(2018年14期)2018-09-26 06:05:06
計算機網絡通信常見問題與技術發展研究
電子制作(2018年10期)2018-08-04 03:24:46
網絡通信中信息隱藏技術的應用
基于網絡通信的校園智能音箱設計
電子制作(2018年1期)2018-04-04 01:48:30
談計算機網絡通信常見問題及技術發展
電子制作(2017年17期)2017-12-18 06:41:06
汽車檢測控制系統網絡通信技術分析
電子測試(2017年23期)2017-04-04 05:07:12
主站蜘蛛池模板: 亚洲第一福利视频导航| 99re经典视频在线| 国产成人h在线观看网站站| 欧美有码在线| 一区二区影院| 亚洲视频二| 国产精品美女网站| 国产成人亚洲精品无码电影| 最新国语自产精品视频在| 久久a毛片| 欧美五月婷婷| 色婷婷亚洲十月十月色天| 国产欧美日韩精品综合在线| 四虎精品国产AV二区| 在线人成精品免费视频| 亚洲日韩国产精品综合在线观看| 国产欧美视频在线| 国产成人精品免费视频大全五级| 国产福利2021最新在线观看| 亚洲高清日韩heyzo| 欧美亚洲香蕉| 久久精品视频亚洲| 亚洲小视频网站| 国产在线观看第二页| 亚洲欧美一级一级a| 免费a级毛片18以上观看精品| 欧美福利在线观看| 亚洲首页在线观看| 亚洲成人高清在线观看| 亚洲人成高清| 久久精品aⅴ无码中文字幕| 日韩欧美国产精品| 亚洲国内精品自在自线官| 久久99精品久久久久纯品| 九九免费观看全部免费视频| 福利国产在线| av在线人妻熟妇| 国产精品午夜电影| 国产精欧美一区二区三区| 91免费国产高清观看| 欧美成人一级| 亚洲国产日韩视频观看| 尤物精品国产福利网站| 国产激情在线视频| 免费国产小视频在线观看| 91久久大香线蕉| 亚洲精品第一在线观看视频| 久久精品国产91久久综合麻豆自制 | 亚洲成人在线网| 亚洲香蕉久久| 3p叠罗汉国产精品久久| 国产在线八区| 美女被操91视频| 欧美国产中文| 亚洲国产亚洲综合在线尤物| 精品综合久久久久久97| 欧美成人免费午夜全| 亚洲无码91视频| 成人伊人色一区二区三区| 国产成人喷潮在线观看| 天天综合色网| 亚洲欧美在线看片AI| 国产精品黄色片| 亚洲国产成人麻豆精品| 国产av一码二码三码无码 | 97一区二区在线播放| 国产成+人+综合+亚洲欧美| 亚洲精品国产成人7777| 国产精品无码制服丝袜| 国产成人乱码一区二区三区在线| 1024国产在线| 亚洲 日韩 激情 无码 中出| 国产精品女熟高潮视频| 国产精品成人不卡在线观看| 国产日本欧美在线观看| 亚洲综合片| 欧美成人精品一区二区| 啪啪永久免费av| 在线高清亚洲精品二区| 香蕉在线视频网站| 国产成人免费高清AⅤ| 久久午夜夜伦鲁鲁片无码免费|