大家好我的服务器客户端项目有问题。我使用命令./server www.google.com
运行我的代理服务器,所以我有argv[1]=www.google.com
。在此之后,我运行我的客户端,然后向服务器发送值GET www.google.com
。现在从服务器端我使用strtok_r(buffer," ",&string1)
所以我有buffer=GET
和string1=www.google.com
(我确定这些因为我打印它们)。问题是当我使用
if((strcmp(string1,argv[1]) == 0))
{
printf(" SAME VALUES \n");
}
我没有得到printf所以这两个变量没有相同的值。有什么想法吗?
答案 0 :(得分:1)
在strtok_r(buffer," ",&string1)
中,string1
不是指向找到的令牌的指针。您似乎在比较string1
,但函数返回值是令牌指针。所以代码应该是
char * tok = strtok_r(buffer," ",&string1);
if ((strcmp (tok,argv[1]) == 0))
{
printf(" SAME VALUES \n");
}