共1条
1/1 1 跳转至页
DOS操作系统下TCP/IP应用程序的编写[原创]
在嵌入式设备开发过程中,为了节省成本,在很多嵌入式设备上使用了DOS操作系统。使用DOS操作系统,不仅可以节省 购买嵌入式操作系统的费用,而且在DOS下开发应用程序也比重新掌握一种嵌入时操作系统要来的快。但是DOS本身不是多任务的操作系统,在编写很多嵌入时设备应用软件时,会遇到一些问题。DOS下TCP/IP协议的实现就是一个比较常见的问题。
DOS下TCP/IP协议的实现可以有两种办法,一是采用有些公司开发的DOS下的TCP/IP协议栈,如:PCTCP。另外可以选用DOS下免费的TCP/IP协议代码,如:wattcp等。
PCTCP协议栈由于支持的协议类型比较全,运行稳定,函数接口简单,因此在DOS下使用的比较多。
在PCTCP使用使用过程中,首先要配置PCTCP.INI文件,主要是设置设备的IP地址,网络掩码、用户名、等参数。下面是一个IP
地址设置部分:
(在PCTCP.INI文件中)
[pctcp ifcust]
ip-address = 192.168.0.52
subnet-mask = 255.255.0.0
PCTCP.INI文件设置完毕后,就需要进行网卡驱动程序的安装。在PCTCP协议中,需要提供网卡的pktdrv驱动程序,驱动程序可以从网上下载。例如:Realtek 8139的pktdrv程序为rtspkt.com,下载完毕后,运行rtspkt.com安装驱动程序。驱动安装完毕后,还要运行PCTCP自己的核心驱动,在使用以太网时,需要调用ethdrv.com. ethdrv运行后,PCTCP核心部分就作为DOS的TSR驻留在内存中, 这时候就可以运行PCTCP的应用程序了.
PCTCP函数库提供了对多种常见TCP/IP协议的支持,包括:TCP、UDP、ICMP、TELNET、FTP、SNMP等。并且在函数借口上采用了和BSD兼容的函数,编程简单,方便移植。
下面给出一个TCP/IP的实现代码例子:
#include <4bsddefs.h>
#include
#include
#include
#include
#include
#include
#include
#include
#include
int base_port=5048;
int exit_flag=0;
main()
{
int socket1;
int socket2;
int socklength;
int peerlength;
struct sockaddr_in sock;
struct sockaddr_in peer;
if((socket1=socket(AF_INET,SOCK_STREAM,0))==-1)
{ printf("\r\nError TCP socket\r\n");
return(1);
}
sock.sin_family=AF_INET;
sock.sin_addr.s_addr=htonl(INADDR_ANY);
sock.sin_port=htons(base_port);
socklength=sizeof(sock);
peerlength=sizeof(peer);
if(bind(socket1,(struct sockaddr *)&sock,socklength)==-1)
{ printf("\r\nError TCP bind\r\n");
return(1);
}
if(listen(socket1,3)==-1)
{ printf("\r\nError TCP listen");
return(1);
}
if((socket2=accept(socket1,(struct sockaddr *)&peer,&peerlength))==-1)
{
printf("\r\nError TCP accept\r\n");
return(1);
}
printf("\r\n\r\nNow begining to receive data!!!\r\n");
close(socket2);
close(socket1);
return(0);
}
从以上代码可以看出,使用了PCTCP软件包后,在DOS下实现TCP/IP代码很简单。
我个人认为,如果需要在DOS下进行TCP/IP应用程序的开发,PCTCP开发包是一个不错的选择。PCTCP开发包支持Borland C,Microsoft C和 watcom c编译器。
关键词: 操作系统 应用程序 编写 原创 PCTCP #in
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |