Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,httplib2,意外错误:socket.error_Python_Sockets_Httplib2 - Fatal编程技术网

Python,httplib2,意外错误:socket.error

Python,httplib2,意外错误:socket.error,python,sockets,httplib2,Python,Sockets,Httplib2,使用Python2.4.3,我试图创建一个HTTP服务器,它:(1)获取带有“POST”的消息,(2)生成应答消息,(3)将应答消息发送回发送方 步骤(1)和(2)进展顺利,步骤3失败。。。。有时使用的httplib2.Http()似乎存在线程问题。 发生故障时的输出为: 这是我的代码(未显示导入): 欢迎任何帮助 我想我找到了解决这个问题的方法。 我在(1)之后添加了以下行: time.sleep(0.25) 这样,为接收消息而打开的套接字就有时间关闭。您的代码混合了空格和制表符作为缩进。这在

使用Python2.4.3,我试图创建一个HTTP服务器,它:(1)获取带有“POST”的消息,(2)生成应答消息,(3)将应答消息发送回发送方

步骤(1)和(2)进展顺利,步骤3失败。。。。有时使用的httplib2.Http()似乎存在线程问题。 发生故障时的输出为:

这是我的代码(未显示导入):


欢迎任何帮助

我想我找到了解决这个问题的方法。 我在(1)之后添加了以下行:

time.sleep(0.25)


这样,为接收消息而打开的套接字就有时间关闭。

您的代码混合了空格和制表符作为缩进。这在Python中是有害的。只使用它们中的任何一个,你是对的。非常感谢。然而,由于脚本有时工作,这不是我的问题。
Unexpected error: socket.error
10.96.5.127 - - [26/May/2014 07:55:39] code 500, message Error processing in do_POST
10.96.5.127 - - [26/May/2014 07:55:39] "POST /exchange/PERFOR HTTP/1.1" 500 -
class PostHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        try:
            # (1) Message from sender is received by server : OK
            content_len = int(self.headers.getheader('content-length'))
            msg = self.rfile.read(content_len)
            self.send_response(200)
            self.end_headers()
            # (2) Received message is used to make the 'smsg' message to be send back.
            # This goes OK so I don't need to show the code.
            # (3) Now 'smsg' shoud be send back to sender
            headers = {"Content-type" : "text/xml" , "Accept": "text/xml" , "User-Agent" :  "haboob/5.9.0.0.4 build-4857" , "SOAPAction": "\"ebXML\"" }
            url = 'http://mynode.local:4080/destination'
            http = httplib2.Http()
            response, content = http.request(url, method="POST", headers=headers, body=smsg)
        except :
            print "Unexpected error:", sys.exc_info()[0]
            self.send_error(500,'Error processing in do_POST')
        return

class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
    """Handle requests in a separate thread."""

if __name__ == '__main__':
    try:
        port=4080
        server = ThreadedHTTPServer(('',port), PostHandler) 
        server.request_queue_size=60
        server.serve_forever()
    except KeyboardInterrupt:
        print ('^C received, shutting down server')
        server.socket.close()