|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
Все, нашел где косяк. Спасибо большое за ответы
|