Я пытаюсь получить буфер через сокет TCP с помощью компонента TServerSocket (я поддерживаю устаревшее приложение, поэтому переход на Indy или что-либо еще не обсуждается).
Iреализовали метод события OnClientRead, который читает этот буфер в неблокирующем сокете (опять же, я не могу вносить радикальные изменения в это устаревшее приложение).
Функция выглядит так:
Однако, это дает мне следующее исключение:
Asynchronous socket error 10053
Если я изменю это на следующее:
procedure TFrmMain.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Size: Integer;
Bytes: array[0..1024*256] of Byte;
begin
Size := Socket.ReceiveLength;
Socket.ReceiveBuf(Bytes, Size);
end;
Это работает.Однако динамический подход более адекватен моей проблемной области.
Что может быть причиной этого?Моя цель - прочитать двоичный буфер через сокет TCP с этим компонентом.
Заранее спасибо.