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

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

Корректное завершение работы TIdTCServer [D7, WinXP]


PonosetcDM ©   (2010-09-07 11:08:00) 

Здраствуйте, уважаемые господа!
У меня такой вопрос: Есть клиентское и серверное приложения, использую Indy 10, вопрос: после того, как клиент установил соединение с сервером, я, спустя некоторое время хочу закрыть серверное приложение, закрывается с Exception'ом но это не важно(наверно)... после этого, запускаю серверное приложение опять, а мне сообщается, что "Error - Could not bind socket. Address and Port already in use"
как с этим бороться помогите плиз....


Сергей М.   (2010-09-07 13:24:00) [1]


> он в цикл не заходит


Кто "он" ?
В какой цикл ?


> for i:= 1to tlst.Count -1 do


Единица-то с какого перепугу тут ?


Anatoly Podgoretsky   (2010-09-07 12:54:00) [2]

> PonosetcDM  (07.09.2010 11:30:04)  [4]

Вот для того что бы этого не было.
А ты что сюда за советом пришел или препираться, если за первым, то марш
исполнять.


PonosetcDM   (2010-09-07 12:23:00) [3]

Удалено модератором


PonosetcDM   (2010-09-07 11:59:00) [4]

Хотелось бы услышать мнение Сергея М. по этому вопросу.


PonosetcDM   (2010-09-07 11:30:00) [5]

причем сдесь try finally, если я просто перезапускаю программу? и там вываливается ошибка что "Could not bind socket. Address and Port are already in use". Смысл в том, что он в цикл не заходит, кстати, хотя соединение с этим сервером активно...


Anatoly Podgoretsky   (2010-09-07 11:26:00) [6]

> PonosetcDM  (07.09.2010 11:08:00)  [0]

Надо использовать try finally


PonosetcDM   (2010-09-07 11:11:00) [7]

Если даже клиент сделает дисконнект, то все равно тоже самое "Error - Could not bind socket. Address and Port already in use", можеь быть есть определенный интервал времени, который необходимо выждать?


PonosetcDM   (2010-09-07 11:09:00) [8]

закрываю приложение следующим образом:
     try
       tlst := SFrmMain.IdTCPServer1.Contexts.LockList;
       for i:= 1 to tlst.Count -1 do
         TIdContext(tlst.Items[i]).Connection.Disconnect;
     finally
       SFrmMain.IdTCPServer1.Contexts.UnlockList;
     end;
     SFrmMain.IdTCPServer1.Active := false;
     SFrmMain.Close;


Наверх

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