问题:服务器地址前面添加一个0时连接失败。
解决:没有对服务器地址前0进行去除,通过增加对服务器地址前0的去除函数对IP进行相应处理。
如下:
void IpFilterZero(char *ip ,char *tar)
{
int i=0;
int j=0;
for(i=0;i<strlen(ip);i++)
{
if((ip[i]>'9' || ip[i]<'0') && ip[i]!='.')
break;
}
if(i!=strlen(ip))
{
strcpy(tar,ip);
return ;
}
for(i=0;i<strlen(ip);i++)
{
if(ip[i]=='.')
{
tar[j++]=ip[i];
}
if(i==0 || ip[i] == '.')
{
int mc=1;
if(i == 0)
{
mc =0;
}
if(ip[i+mc]=='0' && ip[i+mc+1]=='.')
{
tar[j++]=ip[i+mc];
i+=mc;
continue;
}
if(ip[i+mc]=='0')
{
if(ip[i+mc+1]=='0')
{
if(ip[i+mc+2]=='0')
{
tar[j++]=ip[i+mc+2];
i+=mc+2;
continue;
}
else
{
tar[j++]=ip[i+mc+2];
i+=mc+2;
continue;
}
}
else
{
tar[j++]=ip[i+mc+1];
i+=mc+1;
continue;
}
}
else
{
tar[j++]=ip[i+mc];
i+=mc;
continue;
}
}
else
{
tar[j++]=ip[i];
continue;
}
tar[j++]=ip[i];
}
}