────────────────────────────────────
推荐一个 零声学院 免费公开课程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习]
后台服务器:https://course.0voice.com/v1/course/intro?courseId=5&agentId=0
────────────────────────────────────
这里有一个时间顺序的问题,http建立的过程,先处理的accept_cb,然后是recv_cb,接着才是send_cb。对应了nginx11个状态。
content-type:text/html包头中写的是body的格式。
粘包问题
- 定义包的长度
- 分隔符
//读完一行显示下一行的开始位置
int readline(char *allbuf,int idx,char * linebuf)
{
int len=strlen(allbuf);
for(;idx<len;idx++)
{
if(allbuf[idx]=='\r' && allbuf[idx+1]=='\n')
{
return idx +=2;
}else{
*(linebuf++)=allbuf[idx];
}
}
}
int http_requset(struct int ntyevent *ev)
{
//GET POSt
char linebuf[1024]={0};
int idx=readline(ev->buffer,0,linebuf);
if(strstr(linebuf,"GET"))
{
}else if(strstr(linebuf,"POST"))
{
}
}
typedef int NCALLBACK(int,int,void *);
struct ntyevent{
int fd;
int events;
void *arg;
int (*callback)(int fd,int events,void *arg);
int status;
char buffer[BUFFER_LENGTH];
int length;
long last_active;
int method;
int resource[1024];
}
总结
今日星期日,厨房忙活半天,捏饺子上网课,感叹这就是生活!从昨天的网课找到上面这张图,感觉自己撑死就算泛型编程愚昧之巅。虽然已经工作多年,但是仍然是个缺乏自信的蛮干家伙,锻炼还是少之又少。希望编程这条路还是可以越走越宽,通过努力肯定能够走上巅峰,至少是自己的巅峰。