Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IdTCPServer [D6, WinME]


Александр из Минска ©   (2003-12-27 16:05:00) 

Помогите, пожалуйста. Нужно чтобы к серверу мог коннектиться только один клиент. Я вроде все способы с событиями на коннект и дисконнект перебрал... Может у кого-нибудь есть какие-нибудь идеи? или знает стандартные свойства?


Digitman   (2003-12-30 15:53:00) [1]

это - другой вопрос.
подходит значит подходит.


Александр из Минска   (2003-12-30 14:45:00) [2]


> Digitman

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


$hade   (2003-12-30 06:47:00) [3]

Используй IdSimpleServer вместо IdTCPServer...


Digitman   (2003-12-29 17:14:00) [4]


> Точь в точь как в вопросе было указано


никак нет, уважаемый)
предлагаю пари на ящик хорошего коньяка)


Александр из Минска   (2003-12-29 16:52:00) [5]

Я все сделал как надо. (Точь в точь как в вопросе было указано) Просто я конкретно сморозел некоторых местах. А использовал я IdTCPServer1.Threads.LockList.Count...


Digitman   (2003-12-29 13:21:00) [6]


> кое-как


не "кое-как", а, думаю, - никак

уверен, что без использования упомянутого механизма то что ты реализовал - вовсе не то что звучало в вопросе


Александр из Минска   (2003-12-29 13:08:00) [7]

Спасибо. Я уже кое-как сделал эту штуку. :)


Digitman   (2003-12-29 09:19:00) [8]


> какие-нибудь идеи?


Идея есть, причем - единственно верная (если четко следовать требованиям задачи), но работать она будет только под Винтукеем и ВинХрю - это явное использование Winsock2 в части механизма true conditional acceptance, который задействуется установкой опции "слушающего" серверного гнезда SetSockOpt(SO_CONDITIONAL_ACCEPT) перед Listen() с последующим условным акцептированием вх.запросов на коннект вызовом WSAAccept() вместо Accept()


Virus.exe   (2003-12-28 17:47:00) [9]

А не пробовал проверять при коннекте скока всего клиентов на серваке уже висит?А вообще я такие вещи обычно делаю через TServerSocket.Socket.Connections.


Наверх

Титульная страница Поиск, карта сайта Написать письмо