⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server_web.c

📁 网络编程中server的实现
💻 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 + -