-
Облазил весь интернет в поисках информации о том, как правильно установить соединение клиента (TClientSocket) с сервером (TServerSocket), да так и не нашел. Везде разбираются стандартные способы,
if not TClientSocket1.Active ) True Then
begin
TClientSocket1.Active >) True;
end;
но они не подходят для того, что бы программа-клиент работала стабильно и не "подвисала". Если нет соединения с сервером, то клиент пытается установить его через несколько секунд снова.
Потому прошу вас уважемые мастера показать на примере, как надо правильно это реализовать. Заранее благодарен за ваши ответы. -
Сергей М. © (24.09.09 08:22) [1]ClientSocket.Active := True;
И все. Продолжай заниматься своими делами.
О факте успешного коннекта сообщит событие Onconnect.
О факте неуспешного - OnError.
В обработчике OnError среди прочих действий обязательно следует выполнить строчкуSocket.Close -
Спасибо Сергей М..
Только это сработает один раз, например при нажатии на кнопку или старте программы. Как реализовать цикл, который при соединении отключится, а при разрыве соединения снова будет пытаться установить связь с "сервером"?. -
Сергей М. © (25.09.09 12:54) [3]
> Как реализовать цикл
А тут никакой цикл не нужен.
Достаточно в обработчиках OnDisconnect и OnError послать окну формы какое-либо предопределенное асинхронное сообщение (см. PostMessage), при получении которого запустить операцию коннекта
ClientSocket.Active := True;