c - 使用 C 从客户端向服务器发送多个回复

标签 c sockets server client

我的服务器向我发送以下消息:

INFO 123456\n (number may vary)

我应该用以下内容响应服务器:

REPLY 123456\n - matching reply

目前,我的代码正在正确发送一个回复。但是,当我尝试发送第二个回复时,服务器返回错误。我觉得这可能与reply_message char数组有关?对此有什么想法吗?我在下面发布了我的代码。谢谢!

        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';
            }
        }
    }

我还发布了我收到的错误。

enter image description here

最佳答案

从上面的代码可以理解

“server_reply[0] = '\0';”

server_reply 是一个数组或字符指针。在做的时候

“memcpy(checkInfo, &server_reply, 4);”

不需要“&”。

关于c - 使用 C 从客户端向服务器发送多个回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41732857/

相关文章:

c - 为什么我能够在此 char 数组中存储的字节数比使用 malloc() 提供的字节数多?

c++ - PCRE中的匹配顺序

java - 在 android-j2se 上使用 SSL 与服务器客户端套接字通信

node.js - Nodejs 客户端缺少属性

Java 将数据从服务器发送回客户端

c++ - 是否存在 c/c++ 代码格式化程序来对齐出现在代码同一行的注释?

c - 为什么我的 pthread 函数没有打印出我所期望的结果?

javascript - 关闭网络套接字不会在服务器上引起事件

python - 通过套接字的 python 交互式控制台没有换行符

php - 如何在表中插入文件名、标题以及将文件上传到服务器