所以我需要通过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错误。