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

基于SOCKET通信在DOS下的實現

2008-04-12 00:00:00路青起
現代電子技術 2008年16期

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

關鍵詞:嵌入式系統;DOS;TCP/IP;SOCKET

中圖分類號:TP311 文獻標識碼:B 文章編號: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 引 言

隨著科學技術的進步與發展,嵌入式系統在工業控制等領域的應用也越來越廣泛,其功能和規模日益擴大,那么在這信息的時代里,設計具有網絡功能的嵌入式系統是一個重要的發展方向。

嵌入式PC與標準PC架構相同,采用相同的操作系統和軟件開發平臺,如Windows NT,Win CE,Linux,DOS等,但嵌入式PC安裝一般是嵌入到其他設備或系統中,所以體積、功耗、抗震性等方面的特殊要求使其硬件環境與標準PC有所區別:其內存較小、無硬盤、甚至無顯示功能或由遠端的控制終端進行顯示。

因此視窗操作系統的強大功能發揮不出來,那么DOS以其內核小、操作簡單、實時性強就在嵌入式PC領域中占有重要地位。然而,在 DOS操作系統缺少類似Windows環境下WinSock這樣簡單易用的API,使得在DOS下開發編制網絡程序難度大。

2 TCP/IP協議

TCP/IP是一種常用的網絡協議。它是一種通用的網絡互聯技術,即網絡間物理和邏輯的連接。網絡互聯的目標是建立一個同一的、協作的、提供通用服務的通信系統,具體方法是:在低層網絡技術和高層網絡技術之間增加一個中間軟件,這個軟件就是TCP/IP協議。

TCP/IP協議分為4層:鏈路層、網絡層、傳輸層和應用層,其核心部分是傳輸層協議(TCP和UDP)、網絡層協議(IP)和物理接口層,這3層通常在操作系統內核中實現。操作系統內核是不能直接與用戶打交道的,必須通過一定的用戶界面即SOCKET實現。網間應用程序之間的作用方式為客戶機/服務器模式。TCP/IP協議核心與應用程序的關系如圖1所示。

3 SOCKET編程技術[3]

一個完整的網間進程通信需要由2個進程組成,并且只能使用同一種高層協議。因此需要一個5元組來表示,即協議、本地地址、本地端口號、遠地地址、遠地地址號。這樣一個5元組叫作1個相關,即2個協議相同的半相關才能組成一個合適的相關。圖2是一個典型的TCP套接口對話,它采用客戶/服務器模式,由服務器先建立自己的半相關并進入監聽狀態,看是否有與本端口連接的請求。客戶端在建立好自己的半相關后向服務器端發起請求連接,服務器端在檢測到連接后響應連接,這樣就建立了一個連接。

4 DOS下SOCKET的實現

利用NETWORK CLIENT FOR DOS驅動,設計出一組可滿足TCP/IP的數據傳輸需要的函數即可。

4.1 網卡安裝

進行網卡驅動程序的安裝,進行TCP/IP協議的驅動,在config.sys中加入擴充內存的支持,并將DOS駐留到高端。config.sys文件如下:

device=himem.sys

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

dos=high,umb

files=30

buffers=15,0

4.2 網絡編制方法

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

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

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

bind(int,struct sockaddr far*,int,int far*);為套接口聯系一個名字;使服務器指定網絡

接口,從該接口接受連續請求

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

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

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

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

far*);接收套口數據

5 應用實例

系統采用100 Mb/s帶寬的快速以太網、100 Mb/s的交換機及數據庫服務器等。本分系統的

監控主機的硬件平臺采用PC104嵌入式PC機,帶有網卡、多串口卡、1553B卡、DI/O卡、電子盤卡等,軟件平臺為DOS。監控主機對本系統各設備進行實時監控并及時上報管理計算機;利用高速以太網接收信息完成對伺服系統的控制。具體實現為首先利用板卡廠家提供的網絡驅動程序和NETWORK CLIENT FOR DOS驅動TCP/IP,然后利用DOSSOCKETS.LIB編制應用程序,軟件具體實現采用中斷方式接收,接收頻率為20次/s。

主程序如下:

main()

{

sd=sockets(AF_INET,SOCK_DGRAM,IPPROTO_UDP);

sa.sin_port=port;//設置本地IP地址

sa.sin_family=AF_INET;

sa.sin_addr.s_addr=ntohl(HOSTIP);

ioctl(sd,FIONBIO,rti);//設置IO模式

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

old=getvect(0x0c);

setvect(0x0c,cint);

imr=inp(0x21);

outp(0x21,imr0xef);

for()

{

與各設備進行數據交換,將公用數據放入公用緩存;

從recvbuf數據組里將接收IP數據包存入緩存;數據處理;

將處理后的數據存入sendbuf數組中;

}

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); }

由此可見,在此驅動下編寫捕獲IP包程序很方便。在創建SOCKET后,將套接字與本地地址綁定就可按需求接受IP數據包并處理之。

6 結 語

目前,DOS在標準PC機中已經很少使用,但在嵌入式PC中卻是主流操作系統。在DOS下實現基于TCP/IP協議的網絡通信比較復雜、繁瑣,上述的方法簡潔有效地解決了這一問題,并在某工程通信軟件中得到了驗證、取得了良好的效果。

參 考 文 獻

[1]羅軍舟,黎波濤.TCP/IP協議及網絡編程技術[M].北京:清華大學出版社,2004.

[2]譚獻海.網絡編程技術及應用[M].北京:清華大學出版社,2006.

[3]任泰明.TCP/IP協議與網絡編程[M].西安:西安電子科技大學出版社,2004.

[4]方敏.網絡應用程序設計[M].西安:西安電子科技大學出版社,2005.

[5]郭學理,張健.網絡程序設計[M].武漢:武漢大學出版社,

2004.

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

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

主站蜘蛛池模板: 国产精品丝袜视频| 国产欧美高清| 亚洲精品视频网| 综合天天色| 色九九视频| 欧美a√在线| 久久综合丝袜长腿丝袜| 91福利一区二区三区| 呦视频在线一区二区三区| 天堂成人av| 日韩第八页| 毛片在线播放a| 日本不卡在线| 亚洲成A人V欧美综合天堂| 亚洲天堂视频在线观看| 亚洲综合激情另类专区| 一级香蕉人体视频| 亚洲精品自产拍在线观看APP| 在线无码私拍| 国产精品不卡永久免费| 九九九国产| 成人久久精品一区二区三区| 久久久久国产一区二区| 欧美激情网址| 99999久久久久久亚洲| 丰满的熟女一区二区三区l| 国产成人av一区二区三区| 国产大全韩国亚洲一区二区三区| 青青草国产精品久久久久| 中文字幕欧美成人免费| 四虎亚洲国产成人久久精品| 国产人成午夜免费看| 中文字幕精品一区二区三区视频| 亚洲69视频| 国产精品理论片| 日韩精品一区二区三区免费在线观看| 日本一区二区不卡视频| 色有码无码视频| 国产一区二区三区免费观看| 一本一本大道香蕉久在线播放| 亚洲精品麻豆| 欧美日韩激情在线| 91精品综合| 亚洲熟女中文字幕男人总站| 亚洲午夜综合网| 国产美女视频黄a视频全免费网站| 色欲不卡无码一区二区| 久久精品娱乐亚洲领先| 一级香蕉视频在线观看| 成人午夜网址| 激情综合五月网| 91成人在线观看| 999福利激情视频| 国产视频你懂得| 波多野结衣一区二区三区AV| 国产啪在线91| 中文字幕2区| 亚洲综合精品香蕉久久网| 成色7777精品在线| 在线国产欧美| 色偷偷综合网| 日本精品视频一区二区| 无码国产偷倩在线播放老年人| 亚洲欧美成人| 国产精品美女免费视频大全| AV老司机AV天堂| 在线毛片网站| 欧美亚洲日韩不卡在线在线观看| 亚洲免费人成影院| 人与鲁专区| 亚洲浓毛av| 免费中文字幕在在线不卡| 日日摸夜夜爽无码| jizz在线观看| 国产成人亚洲欧美激情| 91系列在线观看| 日本不卡在线播放| 国产午夜不卡| 伊在人亞洲香蕉精品區| 婷婷激情亚洲| 国产精品极品美女自在线网站| 亚洲国产精品日韩欧美一区|