文章目录
- 1.控制连接空闲断开
- 2.数据连接空闲断开
1.控制连接空闲断开
- (1)首先是安装信号SIGALRM,并启动定时闹钟
- (2)如果在闹钟到来之前没有收到任何命令,则在SIGALRM信号处理程序中关闭控制连接,并给客户421 Timeout.的响应,并且退出会话。
- vsfdtp服务器做法
如果在5s内没有收到客户端发来的任何一条命令,那么服务端将断开与客户端之间的会话 - 5s时到了,会断开与客户端之间的连接,给客户端一个421的应答
- eg:
main.c中的全局变量
ftpproto.c
- 测试:idle_session_timeout=10
测试miniftp服务器10s钟是否超时
2.数据连接空闲断开
- (1)如果当前处于数据传输的状态,那么即使控制连接通道空闲(在空闲时间内没有收到任何客户端的命令)也不应该退出会话。实现方法,只需要将先前设定的闹钟关闭掉。
- (2)数据连接通道建立了,但是在一定时间没有传输数据,那么也应该将整个会话断开。
- (3)大致步骤如下:
- eg:ftpproto.c
- 测试:上传过程中,即使过了10s也不会断开数据连接通道