Linux——实现网站发布服务器
来源:互联网 发布:图像高斯滤波算法编程 编辑:程序博客网 时间:2024/06/07 08:13
1、DNS工作原理
1、 递归式
2、 迭代式
网页发布服务器
1.查看系统的服务程序的状态:
service name status
启动服务:
service name start
关闭服务:
service name stop
2、Linux上html默认存放路径:
/var/www/html
http请求报头:
HTTP应答报文段:
网站发布服务器代码 httpd.c:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <assert.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <fcntl.h>#include <sys/stat.h>void send_404(int c){char sendbuff[1024] = {0};strcpy(sendbuff, "HTTP/1.1 404 Not Found\r\n");strcat(sendbuff, "Server: myhttpd/1.0\r\n");strcat(sendbuff, "Content-Length: 14\r\n");strcat(sendbuff, "Content-Type: text/html;charset=gbk\r\n");strcat(sendbuff, "\r\n");strcat(sendbuff, "Page Not Found");send(c, sendbuff, strlen(sendbuff), 0);}void senderr(int c){send_404(c);}void send_success(int c, int fd){struct stat st;fstat(fd, &st);char sendbuff[1024] = {0};strcpy(sendbuff, "HTTP/1.1 200 OK\r\n");strcat(sendbuff, "Server: myhttpd/1.0\r\n");strcat(sendbuff, "Content-Length: ");sprintf(sendbuff+strlen(sendbuff), "%d", st.st_size);strcat(sendbuff, "\r\n");strcat(sendbuff, "Content-Type: text/html;charset=UTF-8\r\n");strcat(sendbuff, "\r\n");send(c, sendbuff, strlen(sendbuff), 0);//fa song wen jian nei rongwhile(1){char buff[10] = {0};int n = read(fd, buff, 9);if(n <= 0){break;}send(c, buff, n, 0);}close(fd);}void main(){int sockfd = socket(AF_INET, SOCK_STREAM, 0);assert(sockfd != -1);struct sockaddr_in ser, cli;memset(&ser, 0, sizeof(ser));ser.sin_family = AF_INET;ser.sin_port = htons(80);ser.sin_addr.s_addr = inet_addr("192.168.1.120");int res = bind(sockfd, (struct sockaddr*)&ser, sizeof(ser));assert(res != -1);listen(sockfd, 5);while(1){int len = sizeof(cli);int c = accept(sockfd, (struct sockaddr*)&cli, &len);assert(c != -1);printf("one client link\n");while(1){char buff[1024] = {0};int n = recv(c, buff, 1023, 0);if(n <= 0){break;}//printf("%s\n", buff);char *p = strtok(buff, " ");if(p == NULL){senderr(c);continue;}p = strtok(NULL, " ");if(p == NULL){senderr(c);continue;}char path[128] = "/var/www/html";strcat(path, p);int fd = open(path, O_RDONLY);if(fd == -1){send_404(c);continue;}//cheng gong, fa song ying da bao wen duan he wen jian nei rongsend_success(c, fd);}close(c);printf("one client unlink\n");}}
阅读全文
0 0
- Linux——实现网站发布服务器
- 服务器发布网站
- ASP.NET Core 网站发布到Linux服务器
- 虚拟服务器无法发布网站
- 利用Windows服务器发布网站
- 利用Windows服务器发布网站
- 【新闻发布】IIS服务器发布网站
- win7电脑做服务器,搭建网站应用后发布到互联网的实现过程
- 购买、配置阿里云Linux服务器配置ftp发布网站全教程
- 在linux下发布网站
- Linux部署tomcat发布网站
- Apache Tomcat 服务器发布Web网站
- VS2010网站发布到服务器上
- 用自己电脑做服务器发布网站
- 如何发布网站到个人服务器
- VS2012网站如何发布到服务器
- mvc远程发布网站到服务器
- IIS服务器配置及网站发布
- Activity实现上下左右滑动监听onTouchEvent()方法
- 不可变对象(Immutable Objects)in Java
- PHP连接mysqli
- Spark技术在京东智能供应链预测的应用
- NOIP普及组考前总结(要取一个严肃点的名字(・-・*))
- Linux——实现网站发布服务器
- MVP+Fresco+RXJava+Retrofit+全选+反选
- abstract class和interface的区别
- 怎么解决java.lang.NoClassDefFoundError错误
- ---接上---解决:jmeter浅谈性能测试指标分析
- Scala语言一些注意事项汇总(2)
- java异常处理机制
- [工具]Ubuntu安装HP MFP m128fn型号的打印机
- Android O 开机动画铃声