各位好!
现有一个问题向大家请教下:
我使用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;
}
}
红色的我用的是".",这个你要改成你的",".