Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » как создать многопользовательский сокет сервер? [RSS Feed]

#1 Сен. 26, 2011 19:22:08

Townsmenel
От:
Зарегистрирован: 2011-09-26
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать многопользовательский сокет сервер?

Всем привет! Работаю с питоном недавно, стоит задача написать многопользовательский сокет сервер. Смотрел можно сделать сервер с помощью asyncore или на каждое подключение делать отдельный поток. Как лучше, что бы было много подключений и при этом минимизировать нагрузку на сервер?



Офлайн

#2 Сен. 26, 2011 19:56:18

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

как создать многопользовательский сокет сервер?

Подход зависит от задачи и условий - на какой OC будет работать сервер? Сколько предположительно будет клиентов/соединений? Объем предполагаемых данных?

Офлайн

#3 Сен. 26, 2011 19:58:44

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать многопользовательский сокет сервер?

Для обучения полезно попробовать оба способа.

PS: сделать сервер c помощью asyncore недостаточно. Он будет брать/сохранять данные из БД, файлов, сети. А взаимодействие с указанными ресурсами тоже нужно реализовать на неблокирующих сокетах, иначе затея не имеет смысла.



Офлайн

#4 Сен. 26, 2011 20:57:17

Townsmenel
От:
Зарегистрирован: 2011-09-26
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать многопользовательский сокет сервер?

s0rg
на какой OC будет работать сервер?
сейчас создаю на Windows SP2, если сделаю то на хостинге на линуксе(или может какая нибудь другая ОС из семейства уникс) будет работать.

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

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

Что можете посоветовать согласно моих параметров?



Офлайн

#5 Сен. 26, 2011 21:06:25

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

как создать многопользовательский сокет сервер?

asyncore - вполне подойдет под ваши требования, если захотите делать на потоках - смотрите сразу на пулы потоков - удобнее будет.
Если протокол ваш же, можете попробывать ZeroMQ.

Офлайн

#6 Сен. 26, 2011 21:34:13

Townsmenel
От:
Зарегистрирован: 2011-09-26
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать многопользовательский сокет сервер?

s0rg
Если протокол ваш же, можете попробывать ZeroMQ.
как протокол мой? Вы имеете в виду отдельный порт?



Офлайн

#7 Сен. 26, 2011 21:54:15

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

как создать многопользовательский сокет сервер?

Какой тип данных принимается/отдается?

Офлайн

#8 Сен. 26, 2011 22:09:03

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

как создать многопользовательский сокет сервер?

http://python.su/forum/viewtopic.php?id=12050

Просто примите к сведению.



Отредактировано (Сен. 26, 2011 22:09:20)

Офлайн

#9 Сен. 26, 2011 22:51:58

Townsmenel
От:
Зарегистрирован: 2011-09-26
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать многопользовательский сокет сервер?

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

а можно просто асинхронный сервер без ZeroMQ?



Офлайн

#10 Сен. 26, 2011 23:15:55

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

как создать многопользовательский сокет сервер?

Townsmenel
а можно просто асинхронный сервер без ZeroMQ?
А что вам мешает? )
Просто предложил его как вариант.

Офлайн

  • Начало
  • » Network
  • » как создать многопользовательский сокет сервер?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version