Доступ к трафику сокетов TCP в Delphi XE6

Недавно мне было поручено написать приложение на Delphi XE6, которое взаимодействует с нашей устаревшей системой (Delphi 2007). Старая система использует TWSocket для управления обменом данными с помощью своего события OnDataAvailable на уровне сокета. Также используются TClientSocket и TServerSocket, и, поскольку они устарели, я бы предпочел использовать современные компоненты для их замены на своей стороне. Можно ли использовать компоненты, поставляемые в Delphi XE6 (например, TIdTCPClient, TIdTCPServer)? Не могли бы вы указать на пример, где это делается?


person Erik Balgård    schedule 26.08.2014    source источник


Ответы (1)


Indy, безусловно, можно использовать в качестве замены этих старых / устаревших библиотек сокетов.

OnDataAvailable - это асинхронный неблокирующий обработчик событий, который требует другого стиля программирования, чем Indy, который использует блокирующую связь TCP.

И в зависимости от вашего конкретного кода, компоненты Indy должны использоваться в отдельном потоке, чтобы работать независимо от основного потока приложения.

person mjn    schedule 26.08.2014