Вопрос
Помогите прояснить ситуацию с компонентом tserversocket. Как принять информацию с помощью socket.receivebuf? И как кинуть принятую информацию в untyped файл?
Ответ
Проясняю ситуация с компонентом TServerSocket — исходники лежат в файле %DELPHI%\Source\INTERNET\scktcomp.pas его свойство .socket имеет тип TServerWinSocket, исходники которого также лежат в этом файле. Метод ReceiveBuf принадлежит предку — TServerSocket, которому Вы должны передать буфер и размер этого буфера, например так
var buf:array[1..100] of byte; Num:integer; … Num:=YourServerSocket.Socket.ReceiveBuf(buf[1],100); writeln('получено ',num,' байт:'); if num > 0 then for ind:=1 to num do write(buf[ind]);
> И как кинуть принятую информацию в untyped файл?
Не стоит использовать этот тип файла — все гораздо проще
var ff:file of byte;
numWritenBiytes:Integer;
…
BlockWrite(ff,buf[1],num,numWritenBiytes);
Честно говоря, мне еще не попадался компонент, с которым было бы удобнее работать, чем напрямую с функциями из модуля WinSock %DELPHI%\Source\RTL\WIN\winsock.pas
Из конференции Expert_FAQ
Copyright 2000-2004 Сообщество Чайников
Контактная информация