Форум сайта python.su
Запустил сервер, обнаружил ощибку сдесь conect.recv() Оказываебтся так нельзя. Не думал даже что сервер не может просто слушать соеденение. Вобще думаю проблему можно опять же решить большим кол-вом тредов. Чтоб Тред принимал данные от клиента, и сразу закрывался. Таким оразом опять же. идеально проблема не решится, НО, вероятность что 1021 будут сидеть и нихрена не делать, а только пялится в монитор не так уж и велика. Как только клиент отправит сообщение тред освободится для другого клиента. Хммм. да что я тут демагогию развожу, вот код:
def get_sms(sub):
global sms
sms = sub.recv(1024)
if sms:
for x in users:
x[].send(sms)
while 1:
for x in users:
thread.start_new(get_sms,(x[0]))
Отредактировано (Авг. 28, 2010 22:56:04)
Офлайн
CryptSpiritЭй, а чем мое решение не устроило-то? Или вы его пропустили? Я же написал - там под 3000 соединений открылось и обломался ваш клиент для крэш-тестов, сервер бы еще принимал и принимал. Я что-то пропустил?
Если вы читали посты выше основная проблема создание тредов. В этом ограничение.
Офлайн
Ваш пример Ed подходит. Я писал про код Alex_Kutsan. Сервер в моем случае очередь строить не должен. Нужно сервер онлайн игрухи а не чат
Отредактировано (Авг. 29, 2010 07:34:12)
Офлайн
Я вот подумал: а что это а игра, в которой нужно поддержать такое кол-во одновременно играющих клиентов?
Они все в одной локации (или комнате) или одновременно решают одну и ту же задачу?
А как они будут отображаться на клиентах? Ведь их клиентские компьютеры просто загнуться с выводом такого кол-ва информации. Причем вместе со своим сетевым интерфейсом, пытающимся получить информацию обо всех этих тысячах других игроков.
Что-то я сомневаюсь в правильности выбора архитектуры…
Офлайн
LexanderМне не хватит сил все рассказать. Но пару моментов просвещу
а что это а игра
LexanderНу нпс на локации игрока будут просчитываться трэдом подключения. Да и дело не в том сколько людей будет играть онлайн, а в том что бы создать основу (сервер) который как совковые пионеры должен быть всегда готов.
поддержать такое кол-во одновременно играющих клиентов
LexanderИ зачем их клиентам так много информации. Клиент если честно будет работать по правилу меньше знаешь лучше спишь.
Ведь их клиентские компьютеры просто загнуться с выводом такого кол-ва информации. Причем вместе со своим сетевым интерфейсом, пытающимся получить информацию обо всех этих тысячах других игроков.
LexanderЯ тоже. Потому то сейчас и выбираю)))))
Что-то я сомневаюсь в правильности выбора архитектуры…
Офлайн
если все подключения будут через один хост, то “конект-шлюз” написать на с++, который будет раскидывать конекты по хостам (распределение нагрузки), а все остальное на питоне ибо он проще, и на нем разработка будет быстрее.
а вообще лучше сразу делать распределенную систему - нехватает ресурсов, воткнул ещё сервак и порядок. с таким кол-вом клиентов все равно одного хоста не хватит(за исключением того если хостить чат или тетрис)
Офлайн
CryptSpiritСобрались 500 человек и зашли в одну комнату. И все.
И зачем их клиентам так много информации. Клиент если честно будет работать по правилу меньше знаешь лучше спишь.
Офлайн
o7412369815963Уже как сутки делаю)
а вообще лучше сразу делать распределенную систему
LexanderНе вижу здесь проблемы
Сообщать каждому клиенту о передвижениях других игроков надо?
LexanderУ меня графика будет просто ( хочется ретро типа старика первого и дьябло второго, но конечно покрасивше)
Отрисовывать клиентам передвижения других игроков надо?
LexanderПодобное будет сбалансировано между клиентом и сервером.
Вот вам нагрузка на процессор, память и видео.
LexanderКонечно же это все мои слова не известно как оно все будет. Но если в крации что уже планируется:
Что делать будете?
Офлайн
CryptSpiritПроблема простая. Каждая передача от одного клиента к другому инфы это трафик. Вам намекают на то, что вы раньше уткнетесь в пропускную способность канала, нежели в ограничение на количество подключений.
Сообщать каждому клиенту о передвижениях других игроков надо?
Не вижу здесь проблемы
Офлайн
Alex2ndr
Разработку игры имхо надо начинать не с сетевого сервера, способного обслужить более 1000 клиентов, а с сюжета
CryptSpirit
если в крации
CryptSpiritИгра крутиться в голове не первый год (от сюдого продумано множество деталей).
задумка не сколько сервера, а игры
Alex2ndrбоже какой изврат. Сложно и долго объяснять что будет вместо этого. Но поверьте. Я ни сел с бухты барахты писать игру. К этому подхожу осторожно и основательно. Желание очень сильное. И идей полный чемодан.
одного клиента к другому
Офлайн