- 博客(8)
- 收藏
- 关注
原创 epoll学习记录1
下面这段代码来自:https://blog.csdn.net/LEOdabao/article/details/80339574 /* *使用epoll实现的服务器*/ #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/socket.h&g...
2018-08-28 08:54:20 166
原创 webserver项目总结
了解了tcp协议三次握手的过程明白c/s模式服务器和客户端数据交互的方式。向socket文件中写或者读数据。明白了http协议中GET方法发送请求的方式加深了对系统API函数的功能理解在动手写代码前,先理清各模块或者功能之间的联系,保证思路清晰后,再去写代码。《理性乐观派》中有一句话,创造既是重组。可以借鉴别人的代码来完成自己的功能,能让别人的代码贴合自己的程序,需要改变和重组,这也是一种能力。不...
2018-07-16 13:28:09 2081
原创 web服务器实现过程
浏览器通过URL向服务器端发送请求,服务器端分析请求,向客户端浏览器做出回应。服务器和客户端数据的发送和接收基于HTTP协议,而两边的连接是基于TCP协议。 先说一下建立连接的过程:服务器端调用socket(),bind(),listen()系统调用后,准备过程完成。再次调用accept()阻塞等待连接请求的到来。当accept()返回的时候,三次握手完成,连接成功建立。 socket...
2018-07-12 15:36:46 1589
原创 终端配置记录
1.终端只显示当前目录的方法 1.vi ~/.bashrc 2.找到如下内容: 59 if [ "$color_prompt" = yes ]; then 60 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]: \[...
2018-07-08 22:34:54 177
原创 webserver的实现
1.回传静态的内容: http头中会先告知浏览器mime类型,浏览器会根据类型不同对下面要传递的内容进行不同的解析。 之后赞回传文件的内容2.在显示目录的函数中,采用的是将所有的目录信息整合到一个字符串数组后,再写给浏览器,这样会要求这个数组特别大 ,若采用得到一个目录就回写一次,可以节省字符数组的大小,但是又会频繁调用write()。...
2018-07-04 18:42:50 718
原创 cgi实现动态交互
GET方式的CGI规范实现原理: 服务器通过URL获取传给CGI程序的参数,设置环境变量QUERY_STRING,并将标准输出重定向到文件描述符,然后通过EXEC函数簇执行外部CGI程序。外部CGI程序获取QUERY_STRING并处理,处理完后输出结果。由于此时标准输出已重定向到文件描述符,即发送给了浏览器。...
2018-07-04 14:46:15 1285
原创 webserver中所用到的函数
1.查看父串中是否存在字串函数原型: #include <string.h> char *strstr(const char *haystack, const char *needle); 由haystack所指向的字符串中,查看是否存在由neddle所指向的子串函数参数: haystack:父串指针 needle:字串指针函数返回值: char *...
2018-07-03 15:14:31 357
原创 实现简单的bash功能
当我们在bash环境下输入linux命令或者自己编写的可执行程序后,再按下回车键便可执行。这里主要就是实现这个功能。 不多说,先看一个简单的代码: 1 #include<stdio.h> 2 #include <sys/types.h> 3 #include <unistd.h> 4 #include <sys/wait.h>...
2018-06-10 21:03:03 447
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人