-
Добрый день! Каким образом пропускать ошибки подключения клиента к несуществующему адресу? (10061) IP адреса я в ручную не указываю а перебираю по-очередно все адреса данной подсети - до тех пор пока не произойдет коннект. Если есть коннект - останавливаю цикл и запоминаю адрес. Соответственно, все те, заведомо ошибочные подключения генерируют ошибку, а это не очень красиво. try socket.active:=true; except не помогает, я так понимаю событие onError происходит вне исключения.
-
кто мешает игнорировать 10061 в onError?
-
генерируют ошибку, а это не очень красиво.
и как бы ты такой красивый узнал, что очередной левый адрес не стоит запоминать если бы ошибки не генерировалось?
-
Брут по диапазону? Забавно, что пишем?
-
Да так, мелочь для офиса, обмен файлами, но с определенной спецификой, а перебор адресов чисто для своего удобства, что бы вручную не вводить при установке программы.
Я понимаю, что генерации ошибки не избежать - меня как раз интересует, как избежать появления сообщения в графическом интерфейсе.
Что мешает игнорировать? как раз в этом и вопрос))
MySocketOnError(......) begin if ErrorCode=10061 then Что делать? end
Если ничего не делать то появится сообщение об ошибке.
-
1. Чтобы "заглушить" ошибку нужно обработать OnError. Если ErrorCode установить в 0, исключения не будет возникать. Каким образом это сделать?
ErrorCode:=0; ?? Разве это параметр не ReadOnly?
2. OnError - продолжает грустную тему предыдущего события :). Возникает при ошибке в работе сокета. Следует отметить, что это событие не поможет Вам отловить ошибку в момент открытия сокета (Open). Для того, чтобы избежать выдачи виндозного сообщения об ошибке, надо заключить операторы открытия сокета в блок try..except (обработка исключительных ситуаций);
Вот как раз так и сделал на открытии сокета - не работает.
-
if ErrorCode=10061 then Abort;
-
Спасибо! А если SocketOnError() begin
Abort;
end;
будет игнорировать все события?
-
Может посмотреть в сторону широковещательных запросов и придумать нормальный протокол, а то однажды можно и оглоблей получить...
|