【发布时间】:2011-07-06 00:33:32
【问题描述】:
我正在尝试确定服务器套接字是否在 python 中正常关闭。
程序接收到文件,如果在发送过程中出现错误,应该删除文件。
我知道您的第一个建议是让客户端发送文件长度或一些终止数据,以让服务器知道文件传输已完成。
可悲的是,我无法更改客户端,它只是通过原始 tcp 转储文件,对此我无能为力。所以请不要,“但如果你能改变它”或“你的协议有缺陷”,我没有写协议,我将不得不处理它。
该脚本应该在 OSX 和 linux 上都可以运行,因此 epoll 已退出。
有什么建议吗?
我可以补充一点,我不关心发生了什么错误,只要发生任何错误。
【问题讨论】:
-
捕获网络级异常没有帮助吗?
-
通过报告文件结束来优雅地关闭套接字。您还需要了解什么?
-
是的,但是我怎么读...
-
@Nicklas A. 你没有“阅读”那个。当您尝试对已关闭的套接字进行读取时,会引发异常。您实际检测到异常时遇到了什么实际问题?
-
永远不会抛出异常,至少在 socket.recv 中不会
标签: python sockets serversocket