Конференция "Сети" » Правильное соединение клиента с сервером
 
  • kluben-hh © (23.09.09 21:58) [0]
    Облазил весь интернет в поисках информации о том, как правильно установить соединение клиента (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

  • kluben-hh © (25.09.09 11:44) [2]
    Спасибо Сергей М..
    Только это сработает один раз, например при нажатии на кнопку или старте программы. Как реализовать цикл, который при соединении отключится, а при разрыве соединения снова будет пытаться установить связь с "сервером"?.
  • Сергей М. © (25.09.09 12:54) [3]

    > Как реализовать цикл


    А тут никакой цикл не нужен.

    Достаточно в обработчиках OnDisconnect и OnError послать окну формы какое-либо предопределенное асинхронное сообщение (см. PostMessage), при получении которого запустить операцию коннекта

    ClientSocket.Active := True;
 
Конференция "Сети" » Правильное соединение клиента с сервером
Есть новые Нет новых   [134437   +29][b:0][p:0.001]