首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

读到uip的uip_appdata有关问题

2013-06-26 
读到uip的uip_appdata问题各位好!现有一个问题向大家请教下:我使用uIP0.9作为tcp的服务端,并侦听端口123,

读到uip的uip_appdata问题
各位好!
现有一个问题向大家请教下:
我使用uIP0.9作为tcp的服务端,并侦听端口123,我在上位机上写了一个简单的程序,主要是设定一些基本参数,如单片机的IP地址,子网掩码,路由器配置等。

我在上位机上发送数据是使用如下的格式:
192,168,182,12,255,255,255,0,192,168,182,1
我将IP地址,掩码,路由器等以逗号分隔的方式发送到单片机123端口,单片机的可以得到这些数据,并且我测试了可以得到uip_appdata中的数据,现在的问题是:我将把这些uip_appdata中的数据保存到EEPROM中,就是每隔一个逗号保存到一个EEPROM的字节地址中,如192保存到地址1,168保存到地址2,依此类推……

给个简单的思路,谢谢大家!
[解决办法]
void ParseIPAddr(unsigned char *addr,unsigned char *data)
{
unsigned char buf[5] ;
int i = 0,j = 0,num= 0,value;

memset(buf, 0, 5);
while (*(addr+i) != '\0')
{
++num;
while (*(addr+i) != '\0' && *(addr+i) != '.'){
if (!isdigit(*(addr+i))) 
return ;

*(buf+j) = *(addr+i);
++i;
++j;
}

*(buf+j) = '\0';
value = atoi(buf);

if ((value > 255) 
[解决办法]
 (value < 0))
return ;    

data[num-1] = value;    
if (*(addr+i) == '.'){
++i;
j = 0;
memset(buf, 0, sizeof(buf));
continue;
}
else break;
}
}
红色的我用的是".",这个你要改成你的",".

热点排行