今天在使用完成端口做http server时, 使用appache ab进行压力测试,当服务器收到客户端的请求后,回复响应后,直接关闭client的fd后,ab出现错误,错误提示如下:
远程主机强迫关闭了一个现有的连接
当在服务端使用shutdown(nClientId, SD_SEND)后,居然没事了
使用shutdown的作用是 禁止写操作,同时等发送缓存的数据发送出去后,直接发送FIN,称“优雅关闭”, "从容关闭"
而直接调用closeSocket时,不会发送缓存的数据给client, 然后发送FIN
ab出现 远程主机强迫关闭了一个现有的连接 可能是收到一个RST错误,待验证,而收到FIN时,应该是收到结束符了