Форум сайта python.su
Добрые сутки товарищи…
Пытаюсь понять как работают клиент-серверные приложения на примере чата.
Вопрос 1: Стоит ли использовать отдельный поток для каждого подключения или можно обойтись вообще без потоков или как?
Вопрос 2: Подключение к серверу должно быть постоянным или только в момент отправки сообщения?
Офлайн
Отличная статья как введение в сокеты на Python - от основ до создания многопоточного эхо-сервера, думаю именно то, что вам сейчас нужно:
http://www.devshed.com/c/a/Python/Sockets-in-Python-Into-the-World-of-Python-Network-Programming/
del3dВ зависимости от используемого стека протоколов, например TCP/IP - постоянное соединение, UPD/IP - отправка датаграмм без подключения, для LAN-чата пойдет.
Вопрос 2: Подключение к серверу должно быть постоянным или только в момент отправки сообщения?
Отредактировано (Апрель 27, 2010 15:08:19)
Офлайн
необязательно на tcp/ip делать постоянное соединение, в вебе например в основном используется непостоянное. + о разрывах меньше думать.
я бы чат наверно на xmlRPC сделал т.к. это бысто и просто…
Офлайн
Спасибо, прочитал.. кое что понял..
Создаю для каждого подключения поток, подключение постоянное..
Офлайн
del3dэээ… зачем поток…
Создаю для каждого подключения поток, подключение постоянное..
Офлайн
1. “на потоках” (синхронный сервер) и без них (асинхронный) - это две разные реализации. От задачи зависит и быстродействие и метод реализации.
2. Если разрывать соединение, то надо писать промежуточные данные в файл (в базу), потом по id авторизоваться и получать что на ваш id пришло. Для быстрого чата (напр. игрового) неподойдет.
Офлайн
pioner, не нужно никуда писать. Вы, кажется, забыли - у каждого современного компьютера есть несколько гигабайтов оперативной памяти.
Офлайн
Андрей Светлов, не нужно еще забывать, что сервера падают или процесс вылетит.
Офлайн
pionerлихие 90-ые прошли.
Андрей Светлов, не нужно еще забывать, что сервера падают или процесс вылетит.
Отредактировано (Апрель 28, 2010 18:50:39)
Офлайн
На самом деле, топикстартер ничего не спросил. Его вопрос звучит так - каким из двух возвожных методов построить чат. Про нагрузку и пр. ничего. Тут есть реальный сисадмин? Этот вопрос к нему.
90-е прошли. 2 года назад на форуме сисадминов перевес был на стороне постоянного соединения.
Еще - а) если разместиться на виртуальном хосте, а не на работе, где администратор может просто перегрузить сервер. 2) на таком сервере вам отводится какой-то процент всех ресурсов (к вопросу о памяти), при превышении которого вас просят переходить на другой тариф (встречал такое).
Отредактировано (Апрель 29, 2010 01:21:26)
Офлайн