Hi there 👋

Welcome to my blog

Go_Http连接建立和处理

http 连接建立和处理 接收 http 请求并执行的过程 go func() { if err := s.ListenAndServe(); err != nil && err != http.ErrServerClosed { log.Fatalf("s.ListenAndServe err: %v", err) } }() 前面提到, 在路由引初始化完成后,注册对应的路由和 handler,接下来在 main 函数中 http.Server 就会监听指定的端口,我们来看下http.Server 是如何接收请求并执行对应的处理函数的 httpServer 会调用 Serve(l net.Listener 函数,这个函数主要做了以下几件事情 在一个循环里面不断监听套接字是否有链接请求上来,如果有的话,创建一个新的连接对象 这个连接对象中有,有两个成员,一个是套接字对象(实现了conn接口),一个是指向service对象的指针 最后一行,通过启动一个新的协程来处理连接事务,并对外提供服务 func (srv *Server) newConn(rwc net.Conn) *conn { c := &conn{ server: srv, rwc: rwc, } if debugServerConnections { c.rwc = newLoggingConn("server", c.rwc) } return c } func (srv *Server) Serve(l net....

February 9, 2024 · 15 min · 3034 words · Me

Unix_System_Call

常用 Unix 函数总结 1. 文件操作 文件流操作 #include <stdio.h> 打开,关闭 FILE* fopen(const char* filename, const char* mode); int fclose(FILE* stream); 数据块读写,大小为 size * numb size_t fread(void *ptr, size_t size, size_t numb, FILE *stream); size_t fwrite(void *ptr, size_t size, size_t numb, FILE *stream); 格式化读,由format参数指定读的数据格式,由 ... 参数指定接收的容器 int fscanf(FILE *stream, const char *format, …); int fprintf(FILE *stream, const char *format, ...); int scanf(const char *format, …); int printf(const char *format, ...); //相当于fprintf(stdout,format,…); 从字符串中读取指定的格式 int sscanf(char *str, const char *format, …); int sprintf(char *str, const char *format, ....

February 9, 2024 · 8 min · 1703 words · LinPr

Fist Blog

Hello World Hey guys, welcome to my world ! 🥳

February 7, 2024 · 1 min · 10 words · Me