Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Чтение из сокета c ReceiveBuf без ожидания


Автор: Georg275 28.10.2020, 12:47
Добрый день. Читаю данные из сокета функцией ReceiveBuf компонента TClientSocket. Свойство ClientType=ctBlocking.

Данные читаются нормально. Но возникает проблема, когда этих данных нет. Это не то что бы штатная ситуация, но вполне возможная. По-хорошему, программа должна попытаться их прочитать и случай отсутствия данных специальным образом обработать. Однако же ReceiveBuf стопорит работу всего потока в ожидании когда данные поступят.
Использовать события при возможности не хотелось бы. У меня опрашивается одновременно несколько портов, а сами клиентсокеты автоматически создаются. Есть ли возможность читать из ReceiveBuf или другой подобной функции без ожидания прихода данных?

Автор: Romikgy 29.10.2020, 22:04
Цитата(Georg275 @  28.10.2020,  11:47 Найти цитируемый пост)
ReceiveBuf 

Count := -1
функция вернет количество байт во внутреннем буфере сокета
или функция ReceiveLength 
сделает тоже

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)