Форум: "Сети";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
Внизfunction TCustomWinSocket.ReceiveBuf(var Buf; Count: Integer) Найти похожие ветки
← →
Josh_BMS (2001-12-17 11:40) [0]Здраствуй всезнающий All!
Хочу задать вопрос относительно
function TCustomWinSocket.ReceiveBuf(var Buf; Count: Integer): Integer;
>----- из хелпа Borland Delphi -----------
function TCustomWinSocket.ReceiveBuf(var Buf; Count: Integer): Integer;
читает по "Count" байт из сокетного соединения в параметер "Buf"
используйте ReceiveBuf для того чтобы читать из сокет-коннекта в событии OnSocketEvent или OnRead или
OnClientRead. ReceiveBuf возвращает колличество байт действительно прочитанных. Если ничего прочитано не было
возвращает -1.
ReceiveBuf работает только в ответ на уведомление о чтении при асинхронном сокете.
----- из хелпа Borland Delphi -----------<
>---- Source Delphi ----------------------
function TCustomWinSocket.ReceiveBuf(var Buf; Count: Integer): Integer;
begin
....
Result := recv(FSocket, Buf, Count, 0);
....
end;
-----------------------------------------<
>------ из хелпа Microsoft -----------
int recv ( SOCKET s, char FAR* buf, int len, int flags ); - получает данные от сокета
------ из хелпа Microsoft -----------<
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
buffer: Pointer;
bufflen: integer;
Somevariable: pchar;
begin
bufflen := Socket.ReceiveLength;
socket.ReceiveBuf(buffer,bufflen);
somevariable:=pchar(@buffer);
end;
возникает Access Violation.
длина somevariable больше чем bufflen.
почему?
← →
Digitman (2001-12-17 13:33) [1]var
buffer: Pointer;
bufflen: integer;
Somevariable: pchar;
begin
bufflen := Socket.ReceiveLength;
getmem(buffer, bufflen);
socket.ReceiveBuf(buffer ^,bufflen);
somevariable:=pchar(buffer);
.....
end;
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c