www.pudn.com > server_web.rar > server_web.c


#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

#define MAXLINE	128



int 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);
	}
}