C语言 http协议

C语言 http协议_第1张图片

 http协议是基于TCP协议之上的,所以首先得用TCP连接到指定服务器上,然后发送http请求。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
void *read_msg(void *arg);
void *read_msg(void *arg)
{
    int fb = *((int *)arg);
    char msg[1024];
    while (1)
    {
        memset(msg, 0, strlen(msg));
        read(fb, msg, sizeof(msg));
         getchar();
        printf("收到消息:%s\n", msg);
    }
}

int main(int argc, char const *argv[])
{
    // 创建客户端对象-------------------
    int fb = socket(AF_INET, SOCK_STREAM, 0);
    if (fb < 0)
    {
        perror("socket");
        return 0;
    }
    
    struct sockaddr_in addr;                            // 定义结构体
    addr.sin_family = AF_INET;                          // 设置为IPV4
    addr.sin_port = htons(80);                        // 设置端口号为8080  htons():将本地网络字序改为网络传输统一的大端存储的字序
                                                        // ntohs() 将网络字序转化为本地主机字序
    addr.sin_addr.s_addr = inet_addr("123.57.239.12"); // 设置网络IP    inet_addr():将字符串转化为整型地址
    //连接服务器
    if (connect(fb, (struct sockaddr *)&addr, sizeof(addr))==0)
    {
        perror("connect");
    }
    //准备http请求
    char *http="GET /index.html HTTP/1.1\r\nHost:123.57.239.12:80\r\n\r\n";
    //发送http请求协议
    write(fb,http,strlen(http));
    //读取http请求回应
    char buf[8192*2];
    read(fb,buf,sizeof(buf));
    printf("%s\n",buf);
    close(fb);
}

HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程: 

(1)客户与服务器建立连接;

(2)客户向服务器提出请求;

(3)服务器接受请求,并根据请求返回相应的文件作为应答;

(4)客户与服务器关闭连接。

C语言 http协议_第2张图片

 

 C语言 http协议_第3张图片

 C语言 http协议_第4张图片

 

你可能感兴趣的:(C语言,c语言,http,开发语言)