通过TCP C ++接收原始JSON字符串

时间:2016-09-14 11:04:11

标签: c++ json tcp

所以我需要通过TCP连接接收原始JSON字符串。 我编写了一个控制台应用程序来接收字符串。我通过发送文本测试了与telnet的连接,它工作正常。但是当有人向我发送原始JSON字符串时,我似乎没有收到任何东西。这是因为recv功能吗?

以下是我的接收代码:

if ((new_socket = accept(s, (struct sockaddr *)&client, &c)) != INVALID_SOCKET)
    {
        puts("Connection accepted");

        // Receive until the peer closes the connection
        do {
            iResult = recv(new_socket, recvbuf, recvbuflen, 0);
            if (iResult > 0) {
                string input(recvbuf,iResult);
                cout << input;
                log << input;
            }
            else if (iResult == 0)
                printf("Connection closed\n");
            else
                printf("recv failed: %d\n", WSAGetLastError());

        } while (iResult > 0);
    }

我将输入(recvbuf)转换为字符串并将其打印到我的控制台和日志文件中。但是当我使用telnet它工作正常,但如果有人发给我原始的JSON字符串,我似乎没有数据。这是我身边的问题(收回错误的功能或什么?)或他们的?我尝试使用read函数,但它创建了一个Assertion failed错误。

error

0 个答案:

没有答案