Я использую Delphi XE8 для разработки мобильных приложений и настольных приложений. В мобильном приложении я использую компонент TIDtcpClient и приложение Desktop для рабочего стола, я использую TServerSocket.Необходимо отправить данные из TServersocket в TidTcpClient
Приложение сервера Desktop содержит TList, который содержит около 1500 записей. Для получения этих значений в приложении Client Mobile я использую следующий метод.
- Сначала запрос на загрузку отправляется с мобильного приложения «Клиент» на приложение «Сервер».
- Затем он извлекает 10 записей и отправляет их обратно в мобильное приложение клиента. После этого он обновляет значения в списке клиентов, а затем снова отправляет запрос на серверное приложение.
- До достижения количества записей этот процесс продолжается.
Проблема в том, что, следуя этому методу, требуется почти 2 минуты времени, и я получаю все данные правильно. Поэтому я решил использовать метод потока файлов. Ниже я упомянул пример кода:
Server Side приложение:
//first saved the List into FileStream & it is working as I have reloaded and checked
//So again I'm loading the saved file, The file Size is near to 400KB
FileStream := TFileStream.Create('D:\ListDet.dat', mtfmOpenRead);
Socket.SendStream(FileStream);
стороне клиента мобильное приложение:
var
FileS: TFileStread;
i: Size;
begin
//Inside the thread
TiDTcpClient.IOHandler.ReadStream(FileS, i);
end;
И когда я использую выше метод, я получаю исключение, и я не могу получить данные.
Просьба предоставить мне любое решение для более быстрого получения данных с сервера на клиент.
Компонент TServerSocket уже давно устарел и устарел. Я рекомендую использовать Indy для серверной части. – mjn
'Я получаю исключение' ... каков фактический класс исключения и сообщение? – mjn
Я получаю закрытое изящное исключение в приложении-клиенте (мобильное устройство). – test12345