Два приведенных выше ответа верны. Однако, учитывая, что вы уже реализовали правописание сервер , тогда запустите его как один . Вы можете начать, запустив его на той же машине, что и отдельный процесс - на localhost:PORT
. Сейчас кажется, что у вас уже есть очень простой интерфейс двоичного протокола - вы можете реализовать такой же простой клиент Python, используя стандартный интерфейс lib * socket
в режиме блокировки.
Однако я предлагаю поиграться с twisted.web
и предоставить простой веб-интерфейс. Вы можете использовать JSON для сериализации и десериализации данных - что хорошо поддерживается Django. Вот очень быстрый пример:
import json
from twisted.web import server, resource
from twisted.python import log
class Root(resource.Resource):
def getChild(self, path, request):
# represents / on your web interface
return self
class WebInterface(resource.Resource):
isLeaf = True
def render_GET(self, request):
log.msg('GOT a GET request.')
# read request.args if you need to process query args
# ... call some internal service and get output ...
return json.dumps(output)
class SpellingSite(server.Site):
def __init__(self, *args, **kwargs):
self.root = Root()
server.Site.__init__(self, self.root, **kwargs)
self.root.putChild('spell', WebInterface())
И для его запуска вы можете использовать следующий скелет .tac
файл:
from twisted.application import service, internet
site = SpellingSite()
application = service.Application('WebSpell')
# attach the service to its parent application
service_collection = service.IServiceCollection(application)
internet.TCPServer(PORT, site).setServiceParent(service_collection)
Запуск вашего сервиса в качестве другого первоклассного сервиса позволяет вам запускать его на другом компьютере в один прекрасный день, если вы обнаружите необходимость, - веб-интерфейс позволяет легко масштабировать его по горизонтали за балансировщиком нагрузки с обратным проксированием.