Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отклонить входящее соединение на TServerSocket 
:(
    Опции темы
anikss
Дата 18.11.2005, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.

Мне нужно сделать так, чтобы к сокету TServerSocket мог присоединиться только один клиент.
Как это сделать? Как можно отклонить входящее соединение на неблокирующем TServerSocket? Очень желательно при том, чтобы клиент получил ошибку.

Спасибо!
PM MAIL WWW ICQ   Вверх
RaIDeR
Дата 19.11.2005, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У TServerSocket'а есть св-во ActiveConnections.
PM MAIL   Вверх
RA
Дата 19.11.2005, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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

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



Код

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin 
if ServerSocket1.Socket.ActiveConnections = 1 then Socket.Disconnect(2);
end;



Это сообщение отредактировал(а) RAdmin - 19.11.2005, 03:11
PM   Вверх
anikss
Дата 19.11.2005, 03:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо большое! А как ошибку на клиенте сгенерировать?
PM MAIL WWW ICQ   Вверх
anikss
Дата 19.11.2005, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не понимаю в чем дело... Я вот переписал TCustomServerSocket, чтобы он вызывал Listen() не с QueueSize:=SOMAXCONN, а с QueueSize:=1, а все равно коннектится неограниченное количество клиентов smile Подскажите, как сделать, чтобы коннектился только один клиент, а остальным при попытке соединения выдавалось что-то вроде WSAERRCONNREFUSED?
PM MAIL WWW ICQ   Вверх
Mayk
Дата 19.11.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

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



Цитата(anikss @ 19.11.2005, 17:59)
понимаю в чем дело.

QueueSize это долно быть не кол-во клиентов, которые могут подсоединиться к серверу, а максимальное кол-во клиентов, с которыми происходит установка соединений. И с кол-вом уже подсоединенных клиентов это никак не связано.

Кстати, может будет проще закрыть серверный сокет после установки соединения?

Это сообщение отредактировал(а) Mayk - 19.11.2005, 14:16


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




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


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

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