1.3 解决TCP服务器退出时,产生退出信号终止进程
1.4 HTTP服务器搭建_显示一静态JPG图片
int on = 1;
if(setsockopt(http_server_fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) <
0)
{
printf("setsockopt(SO_REUSEADDR) 设置错误!\n");
exit(-1);
}
//这样可以保证: 端口关闭之后,立即可以再次使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
signal.h中的宏定义SIG_DFL及SIG_IGN
SIG_DFL,SIG_IGN 分别表示无返回值的函数指针,指针值分别是0和1,
这两个指针值逻辑上讲是实际程序中不可能出现的函数地址值。
SIG_DFL:默认信号处理程序
SIG_IGN:忽略信号的处理程序
/*
往一个已经接收到FIN的套接中写是允许的,接收到的FIN仅仅代表对方不再发送数据。
并不能代表我不能发送数据给对方。
往一个FIN结束的进程中写(write),对方会发送一个RST字段过来,TCP重置。
如果再调用write就会产生SIGPIPE信号
*/
signal(SIGPIPE,SIG_IGN);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/fb.h>
#include <sys/ioctl.h>
1
2
3
4
5
6
7