📄 server_web.c
字号:
#include<sys/socket.h>#include<sys/fcntl.h>#include<netinet/in.h>#include<arpa/inet.h>#include<netdb.h>#include<string.h>#include<stdlib.h>#include<unistd.h>#include<stdio.h>#include<time.h>#define MAXLINE 128int main(int argc, char **argv){ int listenfd, connfd, n; struct sockaddr_in servaddr, user_socket; char buff[MAXLINE]; time_t ticks; listenfd = socket(AF_INET, SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(6789); bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr)); listen(listenfd, 5); for ( ; ; ) { connfd = accept(listenfd, (struct sockaddr *) NULL, NULL);//********************************************************************************** char buf[100]; read(connfd, buf, MAXLINE );//////////////////////////////////////////// FILE* read_from; read_from = fopen("index.html", "r"); char* content_type = "text/html"; char read_buf[128]; //读文件时的字节缓存数组 char* head = "HTTP/1.0 200 OK\r\n"; //正确的头部信息 int len = strlen(head); write(connfd, head, len); char temp_1[30] = "Content-type: "; //准备好要连接的字串 strcat(temp_1, content_type); //构造content_type strcat(temp_1, "\r\n"); len = strlen(temp_1); write(connfd, temp_1, len); send(connfd, "\r\n", 2, 0); //再加一个"\r\n" 不能缺少 格式要求 printf("?"); while (!feof(read_from)) { fgets(read_buf, 128, read_from); write(connfd, read_buf, strlen(read_buf)); continue; }printf("?");/************************************************************************** ticks = time(NULL); snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks)); write(connfd, buff, strlen(buff));***************************************************************************/ fclose(read_from); close(connfd); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -