Цитируемая страница не очень хорошо воспроизводит сообщения. Вот что действительно написал Реми:
SendCmd () предназначен только для текстовых команд / параметров. Вам придется
отправить двоичные данные после выхода SendCmd (), и сервер должен
прочитайте двоичные данные после отправки ответа клиенту. За
Пример:
--- клиент ---
begin
IdTCPClient1.SendCmd('DoIt', 200);
// send binary data, such as with Write(TStream) or Write(TIdBytes)...
end;
Методы Write
, о которых он говорил, являются членами класса TIdIOHandler
. Ваш TIdTCPConnection
объект имеет экземпляр этого класса в своем свойстве IOHandler
, и именно это функция SendCmd
использует для отправки своей строки.
Обозначение Write(TIdBytes)
означает использование метода Write
, который принимает параметр TIdBytes
для своего ввода.
Если двоичные данные уже находятся в потоке или динамическом массиве байтов, то вы можете передать одно из них непосредственно методу Write
. Также существует метод WriteFile
, который отправит весь внешний файл, если вы укажете имя файла. Если вы используете потоковую версию, то у вас есть возможность автоматически включать длину потока.
Если у вас уже нет данных в одной из этих структур, то вы можете либо написать данные по частям с помощью методов Write
, которые принимают целочисленные типы различного размера, либо вы можете скопировать данные в TMemoryStream
и затем передать это Write
.