- 论坛徽章:
- 0
|
int Mystrcmp(char *mip,char *rip)
{
int i;
//printf("mip = %s\n",mip);
//printf("rip = %s\n",rip);
//printf("mip len = %d\n",strlen(mip));
//printf("rip len = %d\n",strlen(rip));
if(strlen(mip) != strlen(rip))
{
return FALSE;
}
for(i =0;i<strlen(mip);i++)
{
// printf("mip[%d] = %c\n",i,mip[i]);
// printf("rip[%d] = %c\n",i,rip[i]);
// getchar();
if(mip[i] != rip[i])
{
return FALSE;
}
}
return TRUE;
}
//这事 自己写的字符串比较 ,开始用c库的string 怎么也判断不出来 ,后来改成自己写,还是判断不出来,下面是 传进去的参数
ret=recvfrom(overall_my_sockfd,
overall_friend_info,
sizeof(sUser_info),
0,
(struct sockaddr *)&con_addr,
(socklen_t *)&con_len);
if (ret<0)
{
perror("recvform");
}
printf("********recv overall_friend_info->user_ip_info = %s\n",inet_ntoa(overall_friend_info->user_ip_info.sin_addr));
printf("********recv con_addr.sin_addr = %s\n",inet_ntoa(con_addr.sin_addr));
strcpy(mygetip,inet_ntoa(overall_my_info->user_ip_info.sin_addr));
strcpy(recvip,inet_ntoa(con_addr.sin_addr));
len_ip = Mystrcmp(mygetip,recvip);
//开始有错误的时候,mygetip,recvip 我用的是char * , 怎么判断都不出来,两个IP不同,可strcmp返回 还是相同。
后来改成 char [] 再传进去 就能判断出来了,给小弟 指点 一二三。
//补充,在char *的时候 上面的两句printf 也都正确,两个不相同 。给strcmp 就 的时候,传进去就相同了。strncmp效果也是一样。
|
|