Код сервера для обработки полученных данных:
while (1)
{
/* RECEIVE DATA */
bytes_recieved = recv(connected,recv_data,1024,0);
recv_data[bytes_recieved];
if (strcmp(recv_data , "q") == 0 || strcmp(recv_data , "Q") == 0) {
send(connected, "disconnected",strlen("disconnected"), 0);
fflush(stdout);
close(connected);
break;
} else if(strcmp(recv_data , "lala") == 0) {
printf("\n RECIEVED DATA = %s " , recv_data);
send(connected, "showMe",strlen("showMe"), 0);
fflush(stdout);
} else {
printf("\n RECIEVED DATA = %s " , recv_data);
send(connected, "Could not find",strlen("Could not find"), 0);
fflush(stdout);
}
fflush(stdout);
}
Код клиента для отправки данных:
// Sending
printf("Please enter the message: ");
fgets(send_data,1024,stdin); // send_data is the string -> char send_data[1024]
// Receive
bytes_recieved=recv(sock,recv_data,1024,0);
recv_data[bytes_recieved] = '\0';
printf("\nRecieved data = %s " , recv_data);
Но мой результат всегда:
Could not find
Даже если я отправил (от клиента): q или Q или lala
Я проверил сайт Cplusplus, я уверен, strcmp вернет 0, когда 2 строки совпадают Кто-нибудь может помочь, почему он всегда возвращает сообщение «Не удалось найти»?
РЕДАКТИРОВАТЬ => Фредерик:
после добавления:
printf("recv_data: \"%s\"\n", recv_data)
От клиента, которого я отправил: lala
Результат:
recv_data: "lala
"
Другая двойная кавычка во второй строке