Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2012, 09:46   #1
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
Вопрос Вопросы по сокетам

Уважаемые форумчане, у меня вот такой вот вопрос.
Есть две программы Сервер и клиент, работающие на TServerSocket и TClientSocket. Сколько максимум клиентов может работать одновременно с севрером?
И еще вопрос.
На сервере есть определенные параметры, которые можно менять, при соединении клиента сервер отсылает клиенту эти параметры, текстом (допустим 100 символов).
Так вот, а что если в течении секунды подключится 20 клиентов, сервер не здохнет?) Как это лучше и оптимально передавать.
Каждый день узнаю новое...
Anton911 вне форума Ответить с цитированием
Старый 10.04.2012, 11:30   #2
Братишка^_^
Пользователь
 
Регистрация: 07.04.2012
Сообщений: 35
По умолчанию

>>Сколько максимум клиентов может работать одновременно с севрером?
Как я знаю, слоты не ограничены. Главное что бы твоя железка не здохла, но так же можно указать ограничение.
>>отсылает клиенту эти параметры, текстом (допустим 100 символов).
Возможно, но либо data:TstringList; и по кускам закидывать, либо
const
char : ...;
char_max : 10000000;
И уже вливаешь.
>>Так вот, а что если в течении секунды подключится 20 клиентов.
Нагрузка будет, но нет. Не здохнет. Но значительно поднимется процессор . Я тестировал, ко мне отправляли текст около 15 человек. Дек вот нагрузка была всего лишь в 5 %.
Братишка^_^ вне форума Ответить с цитированием
Старый 10.04.2012, 11:39   #3
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
По умолчанию

Братишка^_^, спасибо
Каждый день узнаю новое...
Anton911 вне форума Ответить с цитированием
Старый 10.04.2012, 14:15   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

теоретическое ограничение
2Гб адресного пространства/1Мб стека на поток

1 поток на 1 клиента = 2000 клиентов (в реале меньше)
1 поток на N клиентов = 2000*N клиентов


клиентов нужно синхронизованно пускать к переменным сервера, тогда не здохнет
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 10.04.2012, 15:01   #5
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
клиентов нужно синхронизованно пускать к переменным сервера, тогда не здохнет
Можно по подробнее? У меня будет пересылаться каждому приконектившемуся, текст 100-200 символов, там различные активированные на сервере пути к файлам, которые должен будет загрузить клиент. Как мне лучше поступить?
Каждый день узнаю новое...
Anton911 вне форума Ответить с цитированием
Старый 18.04.2012, 11:08   #6
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

TServerSocket лучше сделать в потоке если много клиентов будет иначе программа висеть будет. Либо сделать однин на глобальный на порт к примеру 8080 который будет переподключать клиентов на другой в потоке на порт 8081, далее при подключении на гобальный, клиенту сервер выдает ему сообщение о новом подключении на порт 8081, и клиенты переключатся на него.

Последний раз редактировалось Aliens_wolfs; 18.04.2012 в 14:33.
Aliens_wolfs вне форума Ответить с цитированием
Старый 18.04.2012, 12:52   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

чтение переменных синхронизировать не нужно, но на момент записи нужно блокировать и чтение и запись.

Цитата:
сервер выдает ему сообщение о новом подключении на порт к примеру
задам простой вопрос, а нафига?
сразу не передать данные?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.04.2012, 13:05   #8
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Извиняюсь наверно я неправильно понял вопрос. Я подумал что он хочет сделать обмен данными и сообщениями между клиентами через один сервер. Если же нет то тут можно применить к примеру принцип работы веб сервера или FTP, при запросе сразу дает то что нужно)

Последний раз редактировалось Aliens_wolfs; 18.04.2012 в 13:17.
Aliens_wolfs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по сокетам Replicant Работа с сетью в Delphi 7 26.02.2011 17:29
Передача файла по сокетам bigmak Помощь студентам 1 24.03.2009 12:50
Вопрос по сокетам Garacio_cain Работа с сетью в Delphi 17 29.12.2008 17:22
прередача по сокетам geronime Работа с сетью в Delphi 0 22.12.2007 11:27