摘要:打印文件名和行号printf("%s,%d\n",__FILE__,__LINE__);
阅读全文
摘要:1.进程回收 2.信号(异步机制) 3.socket 4.select 5.ipc 6.管道 7.共享内存 8.多进程 9.多线程 10.线程回收
阅读全文
摘要:1.c语言中的const变量 c语言中const变量是只读变量,有自己的存储空间 2.c++中的const常量 可能分配存储空也可能不分配存储空间 当const常量为全局,并且需要再其他文件中使用,会分配存储空间 当使用&操作符,取const常量的地址时,会分配存储空间 当const int &a=
阅读全文
摘要:#define connectionMax 300 定义一个宏#undef connectionMax 卸载一个宏
阅读全文
摘要:如果在fork之前安装信号,那么子进程也讲继承这个信号
阅读全文
摘要:非实时信号不支持排队,都是不可靠信号;实时信号都支持排队,都是可靠信号
阅读全文
摘要:https://github.com/vbirds/Tinyftp 这个github的项目不错,值得学习
阅读全文
摘要://commsocket.h #ifndef __COMMSOCKET__H #define __COMMSOCKET__H #ifdef __cplusplus extern ‘C‘ { #endif #define ERR_EXIT(m) do { perror(m); exit(EXIT_FA
阅读全文
摘要:在使用select管理服务器连接的时候: 注意1:select是可中断睡眠函数,需要屏蔽信号 注意2:必须获取select的返回值nread,每次处理完一个事件,nread需要-1 注意3:如果客户端的连接超过连接池的大小,需要关闭客户端连接 注意4:获取最大套接字的方法是每次有客户端连接过来时,在
阅读全文
摘要:common_socket.h #ifndef __COMMSOCKET_H_ #define __COMMSOCKET_H_ #ifdef __cplusplus extern 'C' { #endif typedef struct _socket_handle { int socketfd; i
阅读全文
摘要:https://blog.csdn.net/weixin_36750623/article/details/83307973 1.实现read超时检测:read_timeout /** read_timeout-读超时检测函数,不含读操作 (即:判断[从fd套接字]中读数据,是否超时,不真正的读走数
阅读全文
摘要:1.设置I/O为阻塞模式 2.设置I/O为阻塞模式 超时函数: 3.读超时 4.写超时 5.accept_timeout超时函数 主调函数
阅读全文
摘要:1.tcp的11种状态 2.父进程处理并发进程,不能有僵死进程 SIGCHLD信号 while(waitpid(-1,NULL,WNOHANG)>0): 3.SIGPIPE 忽略它 4.close(conn) shutdown()... 5.长连接和短连接 以上是基本功 6.套路
阅读全文
摘要:1.Doing sth,sb did sth:表示2个动作同时发生 2.sth is totally beyond my expectation/imagination 3.
阅读全文
摘要:获取本地ip: int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 获取对端ip: int getpeername(int sockfd, struct sockaddr *addr, socklen_t *
阅读全文
摘要:ssize_t recv(int sockfd, void *buf, size_t len, int flags); flags=MSG_PEEK表示偷窥缓存区 偷窥数据的例子
阅读全文
摘要:1.末尾加\r\n 2.自定义报文 例如:报文头报文体 4个字节:报文体
阅读全文
摘要:谁先关闭,谁先进入time_wait状态,后关闭的进入closed状态 如果同时关闭,那么同时进入time_wait状态 fin_wait_2是半连接状态 服务器端突然关闭,操作系统会向对端发送一个sigpipe的信号,如果客户端不处理,那么客户端程序会挂掉的 1.当对等方socket关闭,会给客户
阅读全文
摘要:常用的是: int inet_aton(const char *cp, struct in_addr *inp); in_addr_t inet_addr(const char *cp); char *inet_ntoa(struct in_addr in);
阅读全文