我不知道如何處理字符串的工作在C:STRNCMP不匹配正確
這裏是我的服務器的一部分: 斷裂不會被調用,即使我通過telnet供應字符「/」。
理想情況下,這將緩衝字符串稱爲get通過添加字符串ch到它一遍又一遍,直到它到達某個字符,或者更好,但字符串(但現在寫它應該與一個字符,但我很想知道如何用一個字符串來做到這一點,所以我可以設計一個使用CR + LF作爲分隔符的協議)。
char ch;
int index = 0;
char get[1024];
const char str[] = "/";
if (read(client, &ch, 1) < 0)
{
perror("read");
get[index] = ch;
index++;
int compareResult = strncmp(str, &ch, 5);
if(compareResult == 0){
index = 0;
close(client);
printf("server responded, connection closed");
break;
}
}
//if (write(client, &ch, 1) < 0) { perror("write"); break; }
printf("got stuff");
爲什麼它沒有達到
printf("server responded, connection closed");
線?
服務器全碼:http://pastebin.com/j5tX3TEx
呃,什麼是「str」? –
爲什麼你比較兩個單個字符作爲字符串,當'str'只有一個字符長,'&ch'只能是一個字符時,爲什麼你有5個到strncmp? – Art