HTTP网络通信编码流程
短连接:即非持久连接,指客户端和服务器进行一次HTTP请求/响应之后就关闭连接。所以下一次的HTTP请求/响应操作需要重新建立连接。
长连接:即持久连接,指客户端和服务器建立一次连接之后可以在这条连接上进行多次请求/响应操作。长连接可以设置过期时间,也可以不设置。
一、简单输出文本信息,如“你好,秋天!”
myhttp.c
1 #include <string.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <unistd.h>
5 #include <assert.h>
6 #include <sys/socket.h>
7 #include <netinet/in.h>
8 #include <arpa/inet.h>
9
10 //服务器与客户端HTTP
11 //简单输出你好,秋天!
12 int main()
13 {
14 int sockfd = socket(AF_INET, SOCK_STREAM, 0);//套接字
15 assert(sockfd != -1);
16
17 struct sockaddr_in saddr, caddr;
18 memset(&saddr,0, sizeof(saddr));
19 saddr.sin_family = AF_INET;
20 saddr.sin_port = htons(80);
21 saddr.sin_addr.s_addr = inet_addr("127.0.0.1");
22
23 int res = bind(sockfd, (struct sockaddr*)&saddr, sizeof(saddr));
24 assert(res != -1);
25
26 listen(sockfd,5);
27
28 while(1)
29 {
30 int len = sizeof(caddr);
31 int c = accept(soc