一脸懵逼:
学习python一段时间,最近使用flask搭建了一个服务器,然后使用phantom(相当于浏览器)发送请求发送了几条flask就挂掉了,报错信息如下:
由于个人python经验不是很足,看到这个错误一脸懵逼。根据以往的经验,首先偶想到的是截图保存这个错误,这样以后遇到了就不会再次懵逼了。
二脸懵逼:
有问题找度娘。百度不行找google,结果折腾了一个下午,也没找到解决办法,不过也好找到了一些有用的信息.
Windows Sockets Error Codes:https://msdn.microsoft.com/en-us/library/windows/desktop/ms740668(v=vs.85).aspx
翻译下:软件导致连接中断。一个已经建立的链接被你主机上的软件中断,可能是由于数据传输超时或者端口错误
看到这个消息,直接反应是这什么鬼。研究了半天也不懂,二脸懵逼啊。
三脸懵逼:
接着百度吧,路漫漫其修远兮,
找到一帖子,http://www.oschina.net/question/726618_2189576
看到这个答案仿佛瞬间就有一束阳光照耀到了我身上,摩拳擦掌,试试试。然后装个库都各种坑,不是装不上就是装上了不能用。百度百度才知道这些是适合unix系统的,无奈我用的是windos,三脸懵逼。
峰回路转:
接着来的剧情只能用峰回路转来形容了。各种方法试了不行后,接着谷歌加百度,然后就看到了这个,其实楼主之间已经看过n多遍这个帖子了。只是这次又仔细看了看。
http://stackoverflow.com/questions/36179535/flask-socket-error-10053
看到这个再联想到微软的报错,我恍然大明白。
soga:
一直以来我以为是flask的问题,以为是flask中断了socket。原来是phantom(浏览器)的问题,phantom使用一个page(相当于浏览器的一个标签页)不停的打开页面的话,时间长了,操作系统就会自动关闭这个链接。所以导致10053错误。
所以问题不是在flask上而是在phantom(浏览器)上。修改了phantom代码。一个page(标签页)请求完毕以后就直接关闭那个page,相当于一个连接完成数据传输的时候就及时关闭连接,下次再重新建立连接,这样一个连接就不会久到被操作系统强制关闭的地步。不断的调用fetchUrl,试了下果然没有报错。
如果能给flask加上异常处理就更好了,不过我还不会加,有会的大神求指点下。