Мой сервер посылает мне следующее сообщение:Отправить несколько ответов на сервер от клиента в C
INFO 123456 \ п (число может варьироваться)
Я должен ответить на сервер с :
СЛОВО 123456 \ п - соответствующий ответ
В настоящее время мой код правильно отправляет один ответ. Тем не менее, сервер возвращается с ошибкой, когда я пытаюсь отправить второй ответ. Я чувствую, что это может быть связано с массивом символов reply_message? Любые мысли по этому поводу? Я разместил свой код ниже. Благодаря!
while(1) {
server_reply[0] = '\0';
printf("Server Reply: %s\n", server_reply);
n = recv(sockfd, server_reply, sizeof(server_reply), 0);
if (n <= 0) {
printf("Receive failed\n");
return 1;
}
printf("Message Recieved from Server: %s\n", server_reply);
if (server_reply) {
char checkInfo[5];
memcpy(checkInfo, &server_reply, 4);
checkInfo[4] = '\0';
if (strcmp(checkInfo, "INFO") == 0) {
char reply_message[sizeof(server_reply) + 1];
memset(reply_message, 0, sizeof(reply_message));
strncpy(reply_message, "REPLY ", sizeof reply_message - 1);
char *replyNumber = server_reply;
replyNumber++;
replyNumber++;
replyNumber++;
replyNumber++;
replyNumber++;
strcat(reply_message, replyNumber);
strcat(reply_message, "\n");
printf("Reply Message: %s\n", reply_message);
if ((send(sockfd, reply_message, strlen(reply_message), 0)) < 0) {
printf("Send failed");
close(sockfd);
return 1;
}
printf("Message Sent: %s\n", reply_message);
reply_message[0] = '\0';
}
}
}
Я также опубликовал ошибку, которую я получаю.