我想通過unix套接字連接到我的測試fcgi應用程序。服務器非常簡單,從燒瓶文檔中獲取http://flask.pocoo.org/docs/0.10/deploying/fastcgi/flup和socket連接
客戶端代碼是我的。我希望通過socket.send
發送示例HTTP請求,並接收帶有「Hello World」的HTTP響應。問題是客戶端掛在s.recv(1024)
並沒有任何反應。
服務器代碼:
def myapp(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
return ['Hello World!\n']
if __name__ == '__main__':
from flup.server.fcgi import WSGIServer
WSGIServer(myapp, bindAddress="fcgi.sock").run()
客戶端代碼:
# -*- coding: utf-8 -*-
import socket
req = """GET/HTTP/1.1
Host: localhost\r\n\r\n"""
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.settimeout(1.0)
s.connect("fcgi.sock")
s.send(req)
data = s.recv(1024)
s.close()
print('Received ' + repr(data))
我測試,以打通nginx的反應,和它的工作很好,但使用套接字我可以不執行此操作。有誰知道我的客戶端代碼有什麼問題?