Существует определенный удаленный сервер. Я хочу, чтобы получить ответ от негоКак получить AReadLinesCount IdTCPClient
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
IdTCPClient1.Host := '163.158.182.243';
IdTCPClient1.Port := 28900;
IdTCPClient1.Connect;
end;
procedure TForm1.IdTCPClient1Connected(Sender: TObject);
begin
IdTCPClient1.IOHandler.Write('001');
IdTCPClient1.IOHandler.ReadStrings(Memo1.Lines, 25, IndyTextEncoding(IdTextEncodingType.encOSDefault));
end;
Процедура требует параметр, чтобы указать AReadLinesCount, в противном случае программа перестает отвечать на запросы
procedure TIdIOHandler.ReadStrings(ADest: TStrings; AReadLinesCount: Integer = -1;
AByteEncoding: IIdTextEncoding = nil
{$IFDEF STRING_IS_ANSI}; ADestEncoding: IIdTextEncoding = nil{$ENDIF}
);
Как AReadLinesCount из полученных ответов
У нас нет контекста. Что такое AReadLinesCount. Пожалуйста, отредактируйте вопрос, чтобы уточнить. –
Подумайте об этом. Как получатель узнает, сколько данных нужно читать? Как получатель может просто угадать, сколько строк читать. Эта информация должна быть передана, а также контент. Если бы это я, я бы не использовал метод, ориентированный на линию. Я бы преобразовал текст в байты, используя некоторую кодировку, например. UTF8. Затем я отправил количество байтов, за которыми следуют сами байты. –
На стороне примечание 'IndyTextEncoding (IdTextEncodingType.encOSDefault))' можно упростить до 'IndyTextEncoding_OSDefault'. –