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

基于SOCKET通信在DOS下的實(shí)現(xiàn)

2008-04-12 00:00:00路青起
現(xiàn)代電子技術(shù) 2008年16期

摘 要:嵌入式PC安裝一般是嵌入到其他設(shè)備或系統(tǒng)中,所以體積、功耗、抗震性等方面的特殊要求使其硬件環(huán)境與標(biāo)準(zhǔn)PC有所區(qū)別:其內(nèi)存較小、無硬盤、甚至無顯示功能或由遠(yuǎn)端的控制終端進(jìn)行顯示,因此視窗操作系統(tǒng)的強(qiáng)大功能發(fā)揮不出來,則DOS以其內(nèi)核小、操作簡(jiǎn)單、實(shí)時(shí)性強(qiáng)就在嵌入式PC領(lǐng)域中占有重要地位。然而,DOS操作系統(tǒng)缺乏類似Winsock的API,所以在該系統(tǒng)下設(shè)計(jì)基于TCP/IP協(xié)議的應(yīng)用程序時(shí)難度較大,結(jié)合實(shí)例闡述基于DOS下的嵌入式系統(tǒng)中實(shí)現(xiàn)SOCKET通信的一種具體方法和過程。

關(guān)鍵詞:嵌入式系統(tǒng);DOS;TCP/IP;SOCKET

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004373X(2008)1609202

Realization of Embedded PC Based on SOCKET Communication in DOS

ZHOU Yun, LU Qingqi

(Electronic Information Engineering Institute,Xi′an Industrial University,Xi′an,710032,China)

Abstract:The embedded PC installment is generally inserted to other equipment or the system,therefore,volume,power loss,antiknocking property special requests cause its hardware environment and standard PC have the differences:its memory is small,does not have the hard disk,even does not have the demonstration function or carries on the demonstration by the farend control terminal.Windows operating system's formidable function cannot display,then DOS is small by its essence,the simplicity of operator,timeliness hold the important position in the embedded PC domain.However,the DOS operating system lacks similar Winsock API,designs under this system based on TCP/IP agreement application procedure the difficulty is big,this article unifies the example to elaborate inserted in the type system based on DOS to realize the SOCKET correspondence.

Keywords:embedded system;DOS;TCP/IP;SOCKET

1 引 言

隨著科學(xué)技術(shù)的進(jìn)步與發(fā)展,嵌入式系統(tǒng)在工業(yè)控制等領(lǐng)域的應(yīng)用也越來越廣泛,其功能和規(guī)模日益擴(kuò)大,那么在這信息的時(shí)代里,設(shè)計(jì)具有網(wǎng)絡(luò)功能的嵌入式系統(tǒng)是一個(gè)重要的發(fā)展方向。

嵌入式PC與標(biāo)準(zhǔn)PC架構(gòu)相同,采用相同的操作系統(tǒng)和軟件開發(fā)平臺(tái),如Windows NT,Win CE,Linux,DOS等,但嵌入式PC安裝一般是嵌入到其他設(shè)備或系統(tǒng)中,所以體積、功耗、抗震性等方面的特殊要求使其硬件環(huán)境與標(biāo)準(zhǔn)PC有所區(qū)別:其內(nèi)存較小、無硬盤、甚至無顯示功能或由遠(yuǎn)端的控制終端進(jìn)行顯示。

因此視窗操作系統(tǒng)的強(qiáng)大功能發(fā)揮不出來,那么DOS以其內(nèi)核小、操作簡(jiǎn)單、實(shí)時(shí)性強(qiáng)就在嵌入式PC領(lǐng)域中占有重要地位。然而,在 DOS操作系統(tǒng)缺少類似Windows環(huán)境下WinSock這樣簡(jiǎn)單易用的API,使得在DOS下開發(fā)編制網(wǎng)絡(luò)程序難度大。

2 TCP/IP協(xié)議

TCP/IP是一種常用的網(wǎng)絡(luò)協(xié)議。它是一種通用的網(wǎng)絡(luò)互聯(lián)技術(shù),即網(wǎng)絡(luò)間物理和邏輯的連接。網(wǎng)絡(luò)互聯(lián)的目標(biāo)是建立一個(gè)同一的、協(xié)作的、提供通用服務(wù)的通信系統(tǒng),具體方法是:在低層網(wǎng)絡(luò)技術(shù)和高層網(wǎng)絡(luò)技術(shù)之間增加一個(gè)中間軟件,這個(gè)軟件就是TCP/IP協(xié)議。

TCP/IP協(xié)議分為4層:鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層,其核心部分是傳輸層協(xié)議(TCP和UDP)、網(wǎng)絡(luò)層協(xié)議(IP)和物理接口層,這3層通常在操作系統(tǒng)內(nèi)核中實(shí)現(xiàn)。操作系統(tǒng)內(nèi)核是不能直接與用戶打交道的,必須通過一定的用戶界面即SOCKET實(shí)現(xiàn)。網(wǎng)間應(yīng)用程序之間的作用方式為客戶機(jī)/服務(wù)器模式。TCP/IP協(xié)議核心與應(yīng)用程序的關(guān)系如圖1所示。

3 SOCKET編程技術(shù)[3]

一個(gè)完整的網(wǎng)間進(jìn)程通信需要由2個(gè)進(jìn)程組成,并且只能使用同一種高層協(xié)議。因此需要一個(gè)5元組來表示,即協(xié)議、本地地址、本地端口號(hào)、遠(yuǎn)地地址、遠(yuǎn)地地址號(hào)。這樣一個(gè)5元組叫作1個(gè)相關(guān),即2個(gè)協(xié)議相同的半相關(guān)才能組成一個(gè)合適的相關(guān)。圖2是一個(gè)典型的TCP套接口對(duì)話,它采用客戶/服務(wù)器模式,由服務(wù)器先建立自己的半相關(guān)并進(jìn)入監(jiān)聽狀態(tài),看是否有與本端口連接的請(qǐng)求。客戶端在建立好自己的半相關(guān)后向服務(wù)器端發(fā)起請(qǐng)求連接,服務(wù)器端在檢測(cè)到連接后響應(yīng)連接,這樣就建立了一個(gè)連接。

4 DOS下SOCKET的實(shí)現(xiàn)

利用NETWORK CLIENT FOR DOS驅(qū)動(dòng),設(shè)計(jì)出一組可滿足TCP/IP的數(shù)據(jù)傳輸需要的函數(shù)即可。

4.1 網(wǎng)卡安裝

進(jìn)行網(wǎng)卡驅(qū)動(dòng)程序的安裝,進(jìn)行TCP/IP協(xié)議的驅(qū)動(dòng),在config.sys中加入擴(kuò)充內(nèi)存的支持,并將DOS駐留到高端。config.sys文件如下:

device=himem.sys

device=c:\\\\dos\\\\emm386.exe noems

dos=high,umb

files=30

buffers=15,0

4.2 網(wǎng)絡(luò)編制方法

在工程文件中加入DOSSOCKETS.LIB,程序中加入DSOCKETS.H和DSOCKETSDEF.H。編程中用到的相關(guān)函數(shù)有:

socket(int,int,int,int far*); 建立套接字

ioctl(int,int,char far*,int far*);控制套接口的操作特性

bind(int,struct sockaddr far*,int,int far*);為套接口聯(lián)系一個(gè)名字;使服務(wù)器指定網(wǎng)絡(luò)

接口,從該接口接受連續(xù)請(qǐng)求

connect(int,struct sockaddr far*,int,int far*);在兩個(gè)套接口之間建立連接

closesock(int,int far*);關(guān)閉套接口

send(int,char far*,int,int,struct sockaddr far*,int,int far*);向套接口寫數(shù)據(jù)

recv(int,char far*,int,int,struct sockaddr far*,int,int

far*);接收套口數(shù)據(jù)

5 應(yīng)用實(shí)例

系統(tǒng)采用100 Mb/s帶寬的快速以太網(wǎng)、100 Mb/s的交換機(jī)及數(shù)據(jù)庫服務(wù)器等。本分系統(tǒng)的

監(jiān)控主機(jī)的硬件平臺(tái)采用PC104嵌入式PC機(jī),帶有網(wǎng)卡、多串口卡、1553B卡、DI/O卡、電子盤卡等,軟件平臺(tái)為DOS。監(jiān)控主機(jī)對(duì)本系統(tǒng)各設(shè)備進(jìn)行實(shí)時(shí)監(jiān)控并及時(shí)上報(bào)管理計(jì)算機(jī);利用高速以太網(wǎng)接收信息完成對(duì)伺服系統(tǒng)的控制。具體實(shí)現(xiàn)為首先利用板卡廠家提供的網(wǎng)絡(luò)驅(qū)動(dòng)程序和NETWORK CLIENT FOR DOS驅(qū)動(dòng)TCP/IP,然后利用DOSSOCKETS.LIB編制應(yīng)用程序,軟件具體實(shí)現(xiàn)采用中斷方式接收,接收頻率為20次/s。

主程序如下:

main()

{

sd=sockets(AF_INET,SOCK_DGRAM,IPPROTO_UDP);

sa.sin_port=port;//設(shè)置本地IP地址

sa.sin_family=AF_INET;

sa.sin_addr.s_addr=ntohl(HOSTIP);

ioctl(sd,F(xiàn)IONBIO,rti);//設(shè)置IO模式

bind(sd,(PSOCKADDR)sa,sizeof(sa));

old=getvect(0x0c);

setvect(0x0c,cint);

imr=inp(0x21);

outp(0x21,imr0xef);

for()

{

與各設(shè)備進(jìn)行數(shù)據(jù)交換,將公用數(shù)據(jù)放入公用緩存;

從recvbuf數(shù)據(jù)組里將接收IP數(shù)據(jù)包存入緩存;數(shù)據(jù)處理;

將處理后的數(shù)據(jù)存入sendbuf數(shù)組中;

}

imr=inp(0x21);

outp(0x21,imr|0x10);

setvect(0x0c,old);

closesocket(sd);

}

中斷處理程序:

void interrupt cint()

{

if(符合接收條件)

{ …

lanle=recv(sd,recvbuf”[0],300,0,(struct sockaddr*)recv,recvlen);

send(sd,sendbuf[0],50,0,(struct sockaddr*)send,sendlen);

… }

outp(0x20,0x64); }

由此可見,在此驅(qū)動(dòng)下編寫捕獲IP包程序很方便。在創(chuàng)建SOCKET后,將套接字與本地地址綁定就可按需求接受IP數(shù)據(jù)包并處理之。

6 結(jié) 語

目前,DOS在標(biāo)準(zhǔn)PC機(jī)中已經(jīng)很少使用,但在嵌入式PC中卻是主流操作系統(tǒng)。在DOS下實(shí)現(xiàn)基于TCP/IP協(xié)議的網(wǎng)絡(luò)通信比較復(fù)雜、繁瑣,上述的方法簡(jiǎn)潔有效地解決了這一問題,并在某工程通信軟件中得到了驗(yàn)證、取得了良好的效果。

參 考 文 獻(xiàn)

[1]羅軍舟,黎波濤.TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)[M].北京:清華大學(xué)出版社,2004.

[2]譚獻(xiàn)海.網(wǎng)絡(luò)編程技術(shù)及應(yīng)用[M].北京:清華大學(xué)出版社,2006.

[3]任泰明.TCP/IP協(xié)議與網(wǎng)絡(luò)編程[M].西安:西安電子科技大學(xué)出版社,2004.

[4]方敏.網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2005.

[5]郭學(xué)理,張健.網(wǎng)絡(luò)程序設(shè)計(jì)[M].武漢:武漢大學(xué)出版社,

2004.

[6]劉鐘情,曾維魯,任小燕.嵌入式實(shí)時(shí)數(shù)據(jù)庫研究與設(shè)計(jì)\\.現(xiàn)代電子技術(shù),2007,30(14):5051.

作者簡(jiǎn)介 周 蕓 1966年出生,陜西西安人,副教授。主要從事電子信息與自動(dòng)控制方面的教學(xué)和研究工作。

主站蜘蛛池模板: 玩两个丰满老熟女久久网| 婷婷亚洲最大| 国产精品99久久久久久董美香| 四虎国产永久在线观看| 成人中文字幕在线| 欧美视频在线播放观看免费福利资源 | 精品人妻无码区在线视频| 久久久久亚洲AV成人网站软件| 国产精品2| 国产自产视频一区二区三区| 亚洲综合18p| 精品视频福利| h视频在线观看网站| 成人午夜视频网站| 九色国产在线| 国产精品成人一区二区不卡 | 亚洲三级a| 亚洲天堂成人| 综合网天天| 另类专区亚洲| 四虎精品国产AV二区| 国产a v无码专区亚洲av| 久无码久无码av无码| 日韩在线欧美在线| 日韩精品无码免费专网站| 伊人久久久久久久| 欧美日韩第三页| 尤物在线观看乱码| 国产在线八区| 国产亚洲精品97AA片在线播放| 欧美视频在线播放观看免费福利资源| 欧美国产精品不卡在线观看 | 2022国产无码在线| 野花国产精品入口| 97国产精品视频自在拍| 狠狠色狠狠综合久久| 狠狠色综合久久狠狠色综合| 国产9191精品免费观看| 午夜一区二区三区| 在线精品欧美日韩| 在线看免费无码av天堂的| 日日拍夜夜操| 91成人在线免费视频| 欧美成人看片一区二区三区| 国产精品人人做人人爽人人添| 精品一区二区三区波多野结衣| 国产激情无码一区二区免费| 青青操国产| 亚洲日韩AV无码一区二区三区人| 无码专区在线观看| 亚洲欧美自拍视频| 永久免费无码成人网站| 91精品国产麻豆国产自产在线| 欧美全免费aaaaaa特黄在线| 国产成人永久免费视频| 国产成人免费观看在线视频| 中文字幕在线看| 国产粉嫩粉嫩的18在线播放91| 欧美成人综合视频| 99热这里只有精品2| 波多野结衣久久高清免费| 91久久偷偷做嫩草影院免费看| 91色国产在线| 亚洲最黄视频| 操国产美女| 在线中文字幕日韩| 9999在线视频| 她的性爱视频| 国产欧美日韩另类精彩视频| 亚洲 欧美 日韩综合一区| 啪啪免费视频一区二区| 91久久夜色精品国产网站| 国产一区三区二区中文在线| 久久久久久午夜精品| 色妞www精品视频一级下载| 2020精品极品国产色在线观看 | 国产精品v欧美| 欧美一区精品| 无码AV日韩一二三区| 色妺妺在线视频喷水| 免费在线a视频| 中文字幕在线不卡视频|