Я пытаюсь подключиться к своему тестовому приложению fcgi через unix-сокет. Сервер довольно прост и взят из документации на колбу. http://flask.pocoo.org/docs/0.10/deploying/fastcgi/соединение с флепом и розеткой
Клиентский код принадлежит мне. Я ожидаю отправить образец HTTP-запроса через socket.send
и получить ответ HTTP с «Hello World». Проблема в том, что клиент зависает на 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, и она работала хорошо, но я не могу выполнить это с помощью сокетов. Кто-нибудь знает, в чем проблема с моим клиентским кодом?