Delphi: Socket.ReadBytes (); против IOHandler.ReadBytes () - PullRequest
5 голосов
/ 09 декабря 2011

Какая разница между:

AContext.Socket.ReadBytes(...);

 vs

AContext.IOHandler.ReadBytes(...);

Они работают одинаково?Или может быть какой-то кеш в IOHandler или что-то?

1 Ответ

6 голосов
/ 09 декабря 2011

Два на самом деле точно такой же метод.Свойство Socket указывает на тот же компонент IOHandler, когда он является TIdIOHandlerSocket -обработанным объектом (что происходит большую часть времени), и в противном случае nil.Вы должны использовать свойство IOHandler напрямую для большинства операций ввода-вывода, поскольку оно обеспечивает большую гибкость в использовании Indy с различными типами систем ввода-вывода.Свойство Socket - это полезный ярлык для функций, связанных с сокетом, например, для доступа к соответствующим значениям IP / порта сокета.

...