спасибо за интересные ответы до сих пор.В свете этих ответов я немного изменил свой вопрос.
думаю, что мне действительно нужно знать, так это сокет-сервер, в отличие от библиотеки сокетов с прямым циклом, предназначенной для обработки как периодов задержки, так и нагрузки, т. Е. имеет ли она дополнительные механизмы или функции, которые оправдывают егонеявно объявляется статус «сервер», или его просто немного проще использовать?
каждый, похоже, рекомендует socketserver, но я до сих пор не совсем понимаю, почему, в отличие от сокета.
спасибо !!!
Я построил некоторые серверные программы на python на основе стандартной библиотеки сокетов http://docs.python.org/library/socket.html
Я заметил, что они работаютпросто отлично, за исключением того, что без нагрузки они имеют тенденцию ложиться спать через некоторое время.Я думаю, что это не может быть проблемой в работе (без сомнения, будет много других проблем), но я хотел бы хотел бы знать, использую ли я правильный код для работы здесь.
Оглядываясь вокруг, я увидел, что python также предоставляет библиотеку сокет-сервера - http://docs.python.org/library/socketserver.html
Библиотека socket предоставляет возможность прослушивать несколько соединений, как правило, до 5.
Согласно странице socketserver , его службы являются синхронными, то есть блокирующими, но можно поддерживать асинхронное поведение с помощью потоков.Я заметил, что у него есть возможность поддерживать очередь запросов со значением по умолчанию до 5 запросов ... так что, может быть, нет большой разницы.
Я также читал, что Twisted запускает сокет-сервер под капотом.Хотя я бы предпочел не попадать в чудовище размером с Twisted, если оно не будет стоить.
, поэтому мой вопрос: является ли сервер-сокет более надежным, чем сокет? Если это так, то почему?
(А как вы узнали?)
кстати, сокет-сервер построен поверх сокета python или он полностью отдельный?
наконец, в качестве бонуса, если кто-то знает, что можно сделать неправильно, так что стандартные розетки «засыпают», пожалуйста, не стесняйтесь, включите это тоже.
О, и я говорюPython 2.x, а не 3.x здесь, если это имеет значение.
спасибо, ребята!
jsh
Ну, у меня нет технического ответа, но я реализовал SocketServer по рекомендациям людей, и он определенно более надежен.Если кто-нибудь придумает объяснение низкого уровня, пожалуйста, дайте мне знать ... спасибо!