共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
跳转至
页
回复
有奖活动 | |
---|---|
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! | |
“我想要一部加热台”活动,不花钱赢取开发好工具!活动开始了哦 | |
【有奖活动】伙伴们:您的“需求”解决了吗? |
打赏帖 | |
---|---|
如何实现基于NXPiMX.RT1021的BH1730采集被打赏50分 | |
【换取手持数字示波器】AHT10温度检测分享被打赏40分 | |
【换取手持数字示波器】ACM32F070开发板点亮LCD屏和触控按键,串口,ADC被打赏40分 | |
【换取手持数字示波器】ACM32F070LCD屏和触控按键功驱动蜂鸣器分享被打赏40分 | |
【换取手持数字示波器】国民技术PWM功能知识分享被打赏40分 | |
【换取手持数字示波器】放大器运放知识分享被打赏40分 | |
【分享评测,赢取加热台】+开关电源AC输入知识分享被打赏30分 | |
【换取手持数字示波器】N32G430点亮数码管与串口打印、ADC被打赏40分 | |
老胖子聊电路--分析一个反馈电路被打赏50分 | |
【换取手持数字示波器】+点亮WS2812RGB灯被打赏50分 |