【发布时间】:2016-06-06 06:26:49
【问题描述】:
我有一个使用 c 编写 HTTP 服务器的任务。服务器读取请求并相应地发送响应。当请求是文件的路径时,我需要读取文件内容并将其作为响应发送给客户端。
文件大小没有限制,所以我按块读取它并按块发送响应。老师说如果recv/send调用在已经写完部分响应后失败,可以关闭连接并继续,但是应该通知客户端响应没有正确发送。
我的问题是,假设发送调用失败,尝试发送响应未正确发送的消息可能会再次失败。我如何通知客户发送响应时出错?
【问题讨论】:
-
也要看失败的原因,如果是连接丢失了就不能通知客户端了。
-
http header 通常包含文件大小。所以客户端可以推断它没有收到所有东西。