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

基于VxWorks的網絡多地址通信實現方法研究

2015-07-07 23:57:23李文濤
科技與創新 2015年10期

李文濤

摘 要:簡要介紹了VxWorks系統下實現網絡多IP地址通信的方法,分析了網絡通信技術的優勢,探討了網絡UDP使用多IP地址和不同Socket端口傳輸技術在VxWorks系統下的具體應用,并針對相關實際應用給出了解決方法,在工程應用中具有一定的實用價值。

關鍵詞:VxWorks;Tornado;Socket;IP地址

中圖分類號:TP393.03 文獻標識碼:A DOI:10.15913/j.cnki.kjycx.2015.10.110

在工程實踐中,經常會用到設備之間的數據通訊,主要包括串口通信、并口通信、網絡通信和1553B總線通信等。隨著通訊技術的進步,網絡通訊技術以價格低廉、連接方便等優勢逐漸成為了各種設備接口互聯的主要手段,并被廣泛應用于計算機網絡領域。網絡通信以其開發簡單、可靠性高、抗干擾性強和傳輸距離長等特點,被廣泛應用到了互聯通信、軍事、航空和航天等技術領域。

1 VxWorks網絡傳輸的特點

VxWorks是美國風河公司(WindRiver)設計開發的一種嵌入式實時操作系統,它是嵌入式開發環境的關鍵組成部分,而Tornado是其主機的集成開發環境。VxWorks的內核具有實時微內核的性能特點,比如快速的任務調度、中斷延遲時間短、同時支持搶占式調度和時間片輪轉調度。VxWorks操作系統會根據任務緩急程度設置通訊任務的優先級別,通過搶占的方式執行優先級高的任務。在工程實踐過程中,經常會用到多個設備之間的通訊,這就要求工作人員設置網絡收發任務,根據任務之間緩急程度的不同設置任務的優先級。VxWorks網絡傳輸除了具有與其他操作系統相同的優勢外,還具備實時性高、可靠、安全等特點。

2 VxWorks系統中網絡多地址通信的實現

在Tornado中創建VxWorks工程時,先打開BSP所在目錄,在CONFIG.H和CONFIGNET.H文件中聲明用到的網卡名,編譯生成BOOTROM文件。當VxWorks系統啟動完畢后,可以在當前開發工程下的用戶程序接口函數usrAppInit中或者自己開發的應用程序初始化函數中添加代碼完成基本的網絡配置。文中以PCPentium自帶的BSP包中的Intel 8255X系列網絡芯片為例,介紹同一網卡下不同IP地址、網關和子網掩碼的配置方法。

ipAttach(0,"fei");

ifAddrSet("fei0","192.10.1.15");

ifMaskSet("fei0",0xffffff00);

if(InitSocket("192.10.1.15",0x2000,Handleone)== TRUE);

ifAddrAdd("fei0","165.10.1.16","165.10.1.255",0xffff0000);

if(InitSocket("165.10.1.16",0x3000,Handletwo)== TRUE);

完成網卡IP地址、網關和子網掩碼配置后,要選擇和建立通信端口,并確認通訊協議。選用的端口號要根據設備間的接口協議確定,在沒有規定的情況下,可以選擇1025~32767之間的任何一個沒有被占用的端口號。

TCP與UDP協議在套接字編程中的區別是:Socket是程序間通信的方法。在建立套接字時,TCP使用Stream Sockets(流格式)的套接字,UDP使用Datagram Sock-ets(數據包格式),在程序中分別用SOCK-STREAM和SOCK-DGRAM標識。由于TCP是面向連接的,所以,在服務器程序中,要偵聽(Listen())端口,客戶端設置連接(Connect()),而后在服務器端接收(Accept())。這在UDP中是不需要的,在服務器中的UDP程序中,只需要一個接收程序Recvfrom( ),而在客戶端需要一個發送函數Sendto( )。那么,為什么有的UDP程序中也會出現連接函數Connect( )呢?因為Connect()函數中包含了目標地址。接下來就可以用Send()和Receive( )來代替Sendto( )和Recvfrom( )函數,而系統套接字接口會自動加上目標和源的相關信息。

總之,TCP和UDP是2種不同的網絡傳輸層協議,是實用且可行的。用戶可以根據自己不同的需要選擇協議類型。

以UDP通信為例,簡單介紹通信端口建立的過程:①創建套接字。利用socket()創建套接字。②給創建的套接字命名。用bind()函數將所需地址捆綁到創建的套接字上,用Setsockopt()函數設置包括Broadcast的數據,完成套接字的創建后就可以用Sendto()和Recvfrom()實現指定端口的UDP數據收發。③關閉套接字。當所有的數據操作結束后,應調用close()函數釋放不用的套接字,從而停止該端口上的數據操作。

3 套接字創建程序和說明

Int InitSocket(char * localAddr,UINT localPort,int *intSocketHandle)

{/****套嵌字創建***/

struct sockaddr_in soc;

int Socket, sockAddrSize;/*變量定義*/

BOOL bl=TRUE;

Socket = socket (AF_INET,SOCK_DGRAM, 0);/*創建套嵌字*/

if (Socket == ERROR)/*創建套嵌字失敗*/

{

return FALSE;/*返回錯誤值*/

}

sockAddrSize = sizeof (struct sockaddr_in);

bzero ((char *)& soc, sockAddrSize);

soc.sin_len = (u_char) sockAddrSize;

soc.sin_family = AF_INET;

soc.sin_port = htons ((short)localPort);/*端口*/

soc.sin_addr.s_addr =inet_addr(localAddr);

if (bind(Socket, (SOCKADDR *)&soc,sizeof(soc)) == ERROR)

{

return FALSE;/*返回錯誤值*/

} if(setsockopt(Socket,SOL_SOCKET ,SO_BROADCAST,(char*)&(bl),sizeof(bl))==ERROR)

{

return FALSE;/*返回錯誤值*/

}

return TRUE;/*返回正確值*/

}

4 結束語

本文設計了一種基于Vxworks系統的多IP地址多端口的UDP網絡通信方法,該方法已在實際設計的軟件模擬器中仿真實現,并完成了大量不同數據包的收發。通過網絡監視工具監測整個通信過程,無丟包和數據錯誤的情況發生,保證了同一網卡下多地址數據傳輸的穩定性。

〔編輯:白潔〕

主站蜘蛛池模板: 国产精品微拍| 成人蜜桃网| 国产91av在线| 亚洲精品天堂在线观看| 小13箩利洗澡无码视频免费网站| 国产XXXX做受性欧美88| 免费jjzz在在线播放国产| 亚洲黄网视频| 亚洲精品视频免费看| 欧美综合中文字幕久久| 成人免费视频一区| 国产一级毛片网站| 亚洲AV无码乱码在线观看代蜜桃 | 精品成人一区二区| 亚洲三级色| 精品久久久无码专区中文字幕| 国产精品综合色区在线观看| 国产91丝袜在线观看| 国产激情影院| 中日韩一区二区三区中文免费视频| 亚洲精品午夜无码电影网| 国产成人AV大片大片在线播放 | 亚洲欧美成人在线视频| 精品久久久久久中文字幕女| 国产激情在线视频| 欧美日韩一区二区在线播放| av在线无码浏览| 91人妻日韩人妻无码专区精品| 国产成年女人特黄特色大片免费| 亚洲一区无码在线| a级毛片在线免费观看| 无码高潮喷水专区久久| 日韩精品一区二区三区免费在线观看| 精品综合久久久久久97| 欧美日韩激情在线| 欧美精品成人| 亚洲免费播放| аⅴ资源中文在线天堂| 日韩精品中文字幕一区三区| 久久精品娱乐亚洲领先| 久久国产乱子伦视频无卡顿| 精品夜恋影院亚洲欧洲| 国产精品2| 国产精品天干天干在线观看| 91免费国产在线观看尤物| 在线欧美一区| 亚洲成人动漫在线观看| 在线播放真实国产乱子伦| 国产又黄又硬又粗| 综合网天天| 日韩免费中文字幕| 四虎永久在线精品影院| 国产黄色片在线看| 免费AV在线播放观看18禁强制| 麻豆国产在线观看一区二区| 国产精品手机在线观看你懂的| 欧美三级视频网站| 伊人久久综在合线亚洲2019| 国内老司机精品视频在线播出| 欧美黄色a| 亚洲天天更新| 久久综合九色综合97网| 欧美爱爱网| 亚洲精品国产自在现线最新| 亚洲成人网在线播放| 国产美女一级毛片| 日韩欧美国产三级| 99尹人香蕉国产免费天天拍| 伊人久久久大香线蕉综合直播| 免费看黄片一区二区三区| 亚洲性日韩精品一区二区| 这里只有精品在线播放| 国产打屁股免费区网站| 欧美三级自拍| 无码'专区第一页| 亚洲aaa视频| 看看一级毛片| 久久精品丝袜| 色老头综合网| 97国产成人无码精品久久久| 亚洲国产看片基地久久1024 | 91青青视频|