bool done;
done = false;
while (!done) {
/* read the message */
bzero(msg, 100);
printf("[client]Type something: ");
fflush(stdout);
read(0, msg, 100);
if (strcmp(msg, "/done") == 0) {
done = true;
/* sending the message to the server */
if (write(sd, msg, 100) <= 0) {
perror("[client]Error sending the message to the server.\n");
return errno;
}
} else {
/* sending the message to the server */
if (write(sd, msg, 100) <= 0) {
perror("[client]Error sending the message to the server.\n");
return errno;
/* reading the answer given by the server*/
if (read(sd, msg, 100) < 0) {
perror("[client]read() error from server.\n");
return errno;
}
/* printing the received message */
printf("[client]The received message is: %s\n", msg);
}
}
Вот код, с которым у меня проблема.Поэтому я хочу отправлять сообщения на сервер, пока не отправлю сообщение «/ done», код работает, я отправляю сообщения непрерывно, но даже когда я печатаю и отправляю «/ done», процесс не заканчивается.
Я думаю, что есть проблема с функцией bzero, которая "очищает" сообщение или, может быть, я не очень хорошо понимаю это.
Я также попытался написать свою собственную функцию, чтобы проверить, совпадают ли две строки,но также не влияет.
Итак, как мне написать условие или «очистить» сообщение, чтобы я мог отправлять сообщения непрерывно, а после отправки «/ done» выполнение заканчивается?
PSmsg объявлено ранее в коде как char msg [100];