我正在尝试使用 CPP 和 SDL_Net 制作 HTTP 客户端。我正在使用 char [] 缓冲区发送和接收信息。
基本上,我在端口 80 上连接到下面提到的站点:
strcpy(buffer,"GET / HTTP/1.0 \n host: nullfakenothing.freeriderwebhosting.com \n \n");
SDLNet_TCP_Send(sd, (void *)buffer, strlen(buffer)+1);
SDLNet_TCP_Recv(sd, (void *)buffer, 200)>0
但我无法取回任何东西(程序卡在 Recv 上)。我使用的协议(protocol)是错误的还是整个 TCP/HTML 系统有问题?
最佳答案
您的 HTTP 协议(protocol)有虚假空格,应该有\r\n 终止符。这是未经测试的,但 HTTP 应该没问题。您可能想要添加其他 header 。
char buffer[1024];
std::strcpy(buffer, "GET / HTTP/1.1\r\n");
std::strcat(buffer, "Host: nullfakenothing.freeriderwebhosting.com\r\n");
std::strcat(buffer, "\r\n");
SDLNet_TCP_Send(sd, (void*) buffer, strlen(buffer));
SDLNet_TCP_Recv(sd, (void*) buffer, sizeof(buffer));
关于c++ - 基于 TCP/IP 的 HTTP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29159663/