Форум: "Сети";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизНовоые подключение на событие OnDisconnect Найти похожие ветки
← →
Delpher_Gray (2004-12-30 21:27) [0]Добрый день !
Поздравляю всех с новым годом !!
такая задача (очень простая, а я затупил :)
вобщем есть TClientSocket. На событие OnDisconnect нужно сменить данные сокета (хост и порт) и заного подключиться.
Подключиться занго у меня не получается :(
Пишу:
ClientSocket1.Host := "localhost";
ClientSocket1.Port := 80;
ClientSocket1.Open;
не подключается :(
← →
Digitman © (2004-12-31 08:26) [1]у тебя же неблок.режим ?
ну так факт подключения - это именно событие OnConnect, а вовсе не завершение выполнения метода Open() ..
в событии OnError это (смену "координат" сервера и повторный вызов Open) следует делать, перед тем убедившись что ErrorCode имеет значения из списка WSAHOST_NOT_FOUND, WSAETIMEDOUT, WSAECONNREFUSED
можно еще перед повторным подключением сделать задержку, например, в событии OnError разрешив работу таймера, в обработчике OnTimer которого тут же запрретить таймер и вызвать Open
← →
Delpher_Gray © (2005-01-01 11:44) [2]Пробывал с таймером, всё работает, но мне какжется что это какой-то "некрасивый" метод решения пробелмы... Если ли другие варианты ? И будет ли зависеть интервал у таймера от скорости соединения ?
← →
Delpher_Gray © (2005-01-02 11:25) [3]??
← →
able © (2005-01-02 11:59) [4]см Digitman © (31.12.04 8:26) [1]
← →
Piter © (2005-01-02 13:26) [5]Digitman © (31.12.04 8:26) [1]
можно еще перед повторным подключением сделать задержку
зачем?
← →
ArchValentin © (2005-01-02 14:21) [6]Короче у мя был такой косяк, вылечил вот как:
ClientSocket.close;
sleep(100);
ClientSocket.host:= чё там тебе нужно
ClientSocket.port:= чё там тебе нужно
ClientSocket.address:= чё там тебе нужно
ClientSocket.active:=true;
Знаю, не идеально, но работает. Аsleep
настолько маленький, юзер даже не заметит...
← →
Delpher_Gray © (2005-01-02 14:32) [7]Я через sleep() пробывал, но неполучилось...
Можно вместо Timer"а сделать через SetTimer() чтоб объект новый не создавать, но это по-моему то же не выход...
← →
ArchValentin © (2005-01-04 19:12) [8]
> Я через sleep() пробывал, но неполучилось...
А чё тогда за ошибка?
← →
Eraser © (2005-01-05 01:23) [9]INDY 10, устал повторять !! ;))
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c