Найти - Пользователи
Полная версия: как создать многопользовательский сокет сервер?
Начало » Network » как создать многопользовательский сокет сервер?
1 2
Townsmenel
Всем привет! Работаю с питоном недавно, стоит задача написать многопользовательский сокет сервер. Смотрел можно сделать сервер с помощью asyncore или на каждое подключение делать отдельный поток. Как лучше, что бы было много подключений и при этом минимизировать нагрузку на сервер?
s0rg
Подход зависит от задачи и условий - на какой OC будет работать сервер? Сколько предположительно будет клиентов/соединений? Объем предполагаемых данных?
dimabest
Для обучения полезно попробовать оба способа.

PS: сделать сервер c помощью asyncore недостаточно. Он будет брать/сохранять данные из БД, файлов, сети. А взаимодействие с указанными ресурсами тоже нужно реализовать на неблокирующих сокетах, иначе затея не имеет смысла.
Townsmenel
s0rg
на какой OC будет работать сервер?
сейчас создаю на Windows SP2, если сделаю то на хостинге на линуксе(или может какая нибудь другая ОС из семейства уникс) будет работать.

s0rg
Сколько предположительно будет клиентов/соединений? Объем предполагаемых данных?
клиентов для начала максимум 500 хватит, в дальнейшем если всё будет ок максимум до 1000
Объем предполагаемых данных в пакетах максимум 512 байт и частота до 20 пакетов в минуту от 1 клиента

dimabest
Он будет брать/сохранять данные из БД, файлов, сети.
брать/сохранять данные из БД, по несколько кБ за 1 запрос

Что можете посоветовать согласно моих параметров?
s0rg
asyncore - вполне подойдет под ваши требования, если захотите делать на потоках - смотрите сразу на пулы потоков - удобнее будет.
Если протокол ваш же, можете попробывать ZeroMQ.
Townsmenel
s0rg
Если протокол ваш же, можете попробывать ZeroMQ.
как протокол мой? Вы имеете в виду отдельный порт?
o7412369815963
Какой тип данных принимается/отдается?
Lexander
http://python.su/forum/viewtopic.php?id=12050

Просто примите к сведению.
Townsmenel
Lexander
Какой тип данных принимается/отдается?
string и int

а можно просто асинхронный сервер без ZeroMQ?
s0rg
Townsmenel
а можно просто асинхронный сервер без ZeroMQ?
А что вам мешает? )
Просто предложил его как вариант.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB