我编写了一个基本的 C 程序,它与客户端的 IP 地址建立连接,google.com然后开始从客户端接收数据。
但首先,在编译期间会生成以下警告:
test.c:12:25:警告:隐式声明
函数“inet_addr”在
C99 [-Wimplicit-function-declaration]
地址.sin_addr.s_addr=inet_addr("2...
^
生成 1 个警告。
其次,在运行程序时,会生成以下输出:
HTTP/1.0 400 错误请求 内容类型:文本/html;字符集=UTF-8 推荐人政策:无推荐人 继续GET/HTTP/1.1
我可以在我的代码中进行哪些更改以成功接收来自 HTTP 服务器的数据?
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<stdlib.h>
int main()
{
int mySocket = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in address;
address.sin_port = htons(80);
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr("216.58.200.196");
connect(mySocket, (struct sockaddr *)&address, sizeof(address));
char msg[21] = "GET/HTTP/1.1\r\n\r\n";
send(mySocket, msg, 21, 0);
char msgRecv[100];
recv(mySocket, msgRecv, 100, 0);
printf("%s", msgRecv);
}