![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте. Возникла необходимость реализовать переподключение клиента к серверу. Конкретизирую: допустим, пользователь запускает программу-клиент в то время, когда сервер отключен. Нужно сделать так, чтобы клиент начал с определенным интервалом пытаться подключиться к серверу. Без выбрасывания всяких ошибок и тд.
Пробовал реализовать через clientError, логическую переменную и таймер, но не вышло. Заранее благодарю |
|
#2
|
||||
|
||||
|
Код:
int connect( SOCKET s, const struct sockaddr* name, int namelen ); |
|
#3
|
|||
|
|||
|
Цитата:
Прошу прощения, но я ничего не понял. Это даже кажется не на Delphi) |
|
#4
|
||||
|
||||
|
функция connect() вернет либо 0 в случае успеха, либо SOCKET_ERROR. никаких выбрасываний ошибок.
|
|
#5
|
|||
|
|||
|
Цитата:
|
|
#6
|
||||
|
||||
|
это не моя функция, это Microsoft
в модуле WinSock она уже есть. |
|
#7
|
|||
|
|||
|
А как ее включить в свою программу?) А то не имел опыта работы с подобным
|
|
#8
|
||||
|
||||
|
Господа, перестанте морочинь голову человеку.
Я так понимаю связь осуществляется посредством TCPServer, TCPClient? Я сам на них не строил, делал на ServerSocket + ClientSocket. Так вот, там обработка события ClientSocketError дает вполне удобный поть для переподключения. 1. Смотришь какой код ошибки. В зависимости от кода что-то выводишь пользователю. 2. Если надо - запускаешь таймер который попытается переподключить клиента к серверу через некоторое время (не забываешь в процедуре OnTimer отключать таймер, чтобы он при успехе не пытался заново подключаться). 3. Не забываешь обнулить ErrorCode. Как-то так. |
|
#9
|
|||
|
|||
|
Цитата:
Спасибо за ясный ответ. Связь осуществляется как раз таки на ServerSocket ClientSocket. Суть в том, что сама ошибка не должна появляться на экране. Программа не может подключиться-ну и тихонько пробовать себе реконнектится. Вот в этом суть |
|
#10
|
||||
|
||||
|
Цитата:
|
|
#11
|
|||
|
|||
|
Цитата:
|
|
#12
|
||||
|
||||
|
В перемонной ErrorCode и лежит код ошибки.
|
|
#13
|
|||
|
|||
|
Цитата:
|
|
#14
|
|||
|
|||
|
Все, нашел где косяк. Спасибо большое за ответы
|