OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » DOS操作系统下TCP/IP应用程序的编写[原创]

共1条 1/1 1 跳转至

DOS操作系统下TCP/IP应用程序的编写[原创]

菜鸟
2003-02-13 01:44:00    评分
在嵌入式设备开发过程中,为了节省成本,在很多嵌入式设备上使用了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 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]