日期:2014-05-16  浏览次数:20831 次

close Socket 时发送tcp RST 信令而非FIN,怎么清空SOCKET读缓冲区?
本人在做web服务器的文件上传功能。我先解析IE发过来的头,发现上传的文件内容太大,于是我就不接受此次上传。我就close此socket,但由于此socket,读缓冲区还有数据,导致close操作 发送给IE一个rst信令而非fin。IE网页采用POST上传的、这样就会出现空白页面。

要解决这个问题 办法 1 是 发现文件太大了 仍然socket 接收,但不写入磁盘。 但这样太慢了。
                    2 发现文件太大。shutdown 关闭socket 读缓冲区,清楚读缓冲区, 再关闭写缓冲期
                       但 怎么清空读缓冲区呢?????????????

                     3  大家有没有好的处理办法?

------解决方案--------------------
上传插件就判断文件大小,过大的就提示失败不行么?