Уведомления

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

#1 Авг. 28, 2010 22:54:00

Alex_Kutsan
От:
Зарегистрирован: 2010-03-25
Сообщения: 150
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Запустил сервер, обнаружил ощибку сдесь 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)

Офлайн

#2 Авг. 28, 2010 23:32:32

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

CryptSpirit
Если вы читали посты выше основная проблема создание тредов. В этом ограничение.
Эй, а чем мое решение не устроило-то? Или вы его пропустили? Я же написал - там под 3000 соединений открылось и обломался ваш клиент для крэш-тестов, сервер бы еще принимал и принимал. Я что-то пропустил?



Офлайн

#3 Авг. 29, 2010 07:18:36

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Ваш пример Ed подходит. Я писал про код Alex_Kutsan. Сервер в моем случае очередь строить не должен. Нужно сервер онлайн игрухи а не чат



Отредактировано (Авг. 29, 2010 07:34:12)

Офлайн

#4 Авг. 29, 2010 08:37:59

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

Создание сервера с неограниченым числом подключений

Я вот подумал: а что это а игра, в которой нужно поддержать такое кол-во одновременно играющих клиентов?
Они все в одной локации (или комнате) или одновременно решают одну и ту же задачу?
А как они будут отображаться на клиентах? Ведь их клиентские компьютеры просто загнуться с выводом такого кол-ва информации. Причем вместе со своим сетевым интерфейсом, пытающимся получить информацию обо всех этих тысячах других игроков.
Что-то я сомневаюсь в правильности выбора архитектуры…



Офлайн

#5 Авг. 29, 2010 17:32:56

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Lexander
а что это а игра
Мне не хватит сил все рассказать. Но пару моментов просвещу
Lexander
поддержать такое кол-во одновременно играющих клиентов
Ну нпс на локации игрока будут просчитываться трэдом подключения. Да и дело не в том сколько людей будет играть онлайн, а в том что бы создать основу (сервер) который как совковые пионеры должен быть всегда готов.
Lexander
Ведь их клиентские компьютеры просто загнуться с выводом такого кол-ва информации. Причем вместе со своим сетевым интерфейсом, пытающимся получить информацию обо всех этих тысячах других игроков.
И зачем их клиентам так много информации. Клиент если честно будет работать по правилу меньше знаешь лучше спишь.
Lexander
Что-то я сомневаюсь в правильности выбора архитектуры…
Я тоже. Потому то сейчас и выбираю)))))



Офлайн

#6 Авг. 30, 2010 10:19:19

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

Создание сервера с неограниченым числом подключений

если все подключения будут через один хост, то “конект-шлюз” написать на с++, который будет раскидывать конекты по хостам (распределение нагрузки), а все остальное на питоне ибо он проще, и на нем разработка будет быстрее.
а вообще лучше сразу делать распределенную систему - нехватает ресурсов, воткнул ещё сервак и порядок. с таким кол-вом клиентов все равно одного хоста не хватит(за исключением того если хостить чат или тетрис)

Офлайн

#7 Авг. 30, 2010 19:26:07

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

Создание сервера с неограниченым числом подключений

CryptSpirit
И зачем их клиентам так много информации. Клиент если честно будет работать по правилу меньше знаешь лучше спишь.
Собрались 500 человек и зашли в одну комнату. И все.
Сообщать каждому клиенту о передвижениях других игроков надо? Надо. Вот вам нагрузка на сеть.
Отрисовывать клиентам передвижения других игроков надо? Надо, ведь в одной локации находятся все 500. Вот вам нагрузка на процессор, память и видео.
Что делать будете?



Офлайн

#8 Авг. 30, 2010 22:28:08

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

o7412369815963
а вообще лучше сразу делать распределенную систему
Уже как сутки делаю)
Lexander
Сообщать каждому клиенту о передвижениях других игроков надо?
Не вижу здесь проблемы
Lexander
Отрисовывать клиентам передвижения других игроков надо?
У меня графика будет просто ( хочется ретро типа старика первого и дьябло второго, но конечно покрасивше)
Lexander
Вот вам нагрузка на процессор, память и видео.
Подобное будет сбалансировано между клиентом и сервером.
Lexander
Что делать будете?
Конечно же это все мои слова не известно как оно все будет. Но если в крации что уже планируется:
Открытый клиент с простой графикой (о ней я уже говорил) и управлением сродни доте и т. д..
Тоесть кто захочет тот и допишит что надо еще и выложит на офсайте (если захочет)
Вобщем задумка не сколько сервера, а игры. Собственно ради одной задумки и ковыряемся. саморазвивающаяся игра. Где игрок может стать богом и вершить судьбу мира (катаклизмы, рельеф…). А до этого он должен бегать простым героем. Уровней нет есть только статы. Что хош то и делай. Стиль фентези. Амбиций может и не хватить но идея игры уже не первый год мучит. Пора побывать реализовывать.



Офлайн

#9 Авг. 31, 2010 21:29:58

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

Создание сервера с неограниченым числом подключений

CryptSpirit
Сообщать каждому клиенту о передвижениях других игроков надо?

Не вижу здесь проблемы
Проблема простая. Каждая передача от одного клиента к другому инфы это трафик. Вам намекают на то, что вы раньше уткнетесь в пропускную способность канала, нежели в ограничение на количество подключений.

Впрочем это все голая теория. Разработку игры имхо надо начинать не с сетевого сервера, способного обслужить более 1000 клиентов, а с сюжета, концепции и тд. Так что вам до сетевых проблем еще как до луны… Вот когда они будут тогда и будете думать - а зря голову ломать не стоит… Все это имхо.



Офлайн

#10 Авг. 31, 2010 22:58:31

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Alex2ndr
Разработку игры имхо надо начинать не с сетевого сервера, способного обслужить более 1000 клиентов, а с сюжета
CryptSpirit
если в крации
CryptSpirit
задумка не сколько сервера, а игры
Игра крутиться в голове не первый год (от сюдого продумано множество деталей).
Alex2ndr
одного клиента к другому
боже какой изврат. Сложно и долго объяснять что будет вместо этого. Но поверьте. Я ни сел с бухты барахты писать игру. К этому подхожу осторожно и основательно. Желание очень сильное. И идей полный чемодан.



Офлайн

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

Board footer

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

Powered by DjangoBB

Lo-Fi Version