繁体   English   中英

通过TCP / IP的HTTP?

[英]HTTP over TCP/IP?

我正在尝试使用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上)。 我使用的协议是否错误或整个TCP / HTML系统是否存在问题?

您发送的不是HTTP,而是一些看起来有点像HTTP的东西(如果您不费劲的话)。 请使自己熟悉该规范(例如RFC2616 ),或者至少查看一些数据包转储或工作代码,以了解准确执行这些操作所需的内容。 由于很多事情是错误的,因此指出特定的错误是没有意义的。

您的HTTP协议具有虚假空间,并且应具有\\ r \\ n终止符。 这未经测试,但是HTTP应该可以。 您可能要添加其他标题。

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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM