Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как временно остановить прослушку сервера? 
:(
    Опции темы
GolIy
Дата 22.2.2007, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 5.4.2006

Репутация: нет
Всего: нет



Здасти вам!
Подскажите, как можно остановить прослушку сервака? Т.е. после listen, к примеру после первого accept'а, необходимо чтобы больше не было возможности коннекта, но как это сделать? ;) Сейчас делаю как closesocket() smile) А потом, чтобы завести серв опять создаю сокет, опять биндю, опять листен ;) Что-то мне подсказывает что это чуток криво ;)
PM MAIL   Вверх
chaos
Дата 22.2.2007, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 2
Всего: 44



самый простой способ не делать accept'ов больше

PM WWW   Вверх
GolIy
Дата 22.2.2007, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 5.4.2006

Репутация: нет
Всего: нет



Дык, а вы попробуйте не делая accept, сделав тока listen на серве от клиента вызвать connect()... он вернёт, что всё ок, типа законектились, ибо листен включен... ;( мне же нужно при втором конекте клиента, чтобы он выдал сообщение о невозможности соединения... поэтому accept'ом не разрулишь... 

Можно конечно так - заэксептить второго юзверя и послать ему мессаге busy и тот в свою очередь приняв эту мессгау сообщает юзеру о невозможности коннекта... но я так сделать не могу, ибо у мну нет исходников клиента ;)
PM MAIL   Вверх
ptr
Дата 23.2.2007, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



Цитата(GolIy @  22.2.2007,  14:02 Найти цитируемый пост)
Дык, а вы попробуйте не делая accept, сделав тока listen на серве от клиента вызвать connect()... он вернёт, что всё ок, типа законектились, ибо листен включен... ;(

Попробуй. connect не может вернуть ok, если не было accept'a.

Цитата(GolIy @  22.2.2007,  14:02 Найти цитируемый пост)
мне же нужно при втором конекте клиента, чтобы он выдал сообщение о невозможности соединения...

У listen второй параметр - количество клиентов в очереди ожидания.


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
GolIy
Дата 26.2.2007, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 5.4.2006

Репутация: нет
Всего: нет



Цитата

Попробуй. connect не может вернуть ok, если не было accept'a.

А у меня возвращает, делаю accept на серве компилю connect возвращает 0, убиваю полностью accept запускаю клиент тоже возвращает 0. Ему пофик, главно чтоб листен был запущен, а делается ли эксепт на серве не делается у него всегда успешный коннект %) имхо конечно, но... могу код весь кинуть серва и клиента ;) Кроме кода у меня аргументов нет ;))

Цитата

У listen второй параметр - количество клиентов в очереди ожидания. 

Вот тут я не могу врубиться - по логике, если я воткну туды 1, при запуске второго клиента не должон же конектиться? А у меня конектиться, или я неправильно понял ентот параметр ;( 
Вообщем, скоро буду биться бошкой об стену ;))
PM MAIL   Вверх
ptr
Дата 26.2.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



Цитата(GolIy @  26.2.2007,  09:45 Найти цитируемый пост)
 при запуске второго клиента не должон же конектиться?

Если ты поставишь 1, то у тебя может быть сколько угодно подсоединившихся клиентов, и только один ожидающий соединения.

Показывай код.


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
Rickert
Дата 6.3.2007, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



В чём проблема, я понять не могу?
Примерно так реализован стандратный accept:
Код

while(1)
{
...
accept(...);
usersCount++;//кол-во пользователей подрубившихся
...
}

Ну так добавь условие:
Код

while(1)
{
...
accept(...);
usersCount++;
if (usersCount >= maxUserCount)
  break;
...
}


Это сообщение отредактировал(а) Rickert - 6.3.2007, 09:10


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1083 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.