Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
14-9288
Ежик
2002-01-14 15:06
2002.03.04
Подскажите плииз где можно скачать Windows 3.1


4-9322
cad
2002-01-03 12:59
2002.03.04
Имя пользователя windows


4-9325
Алекс
2002-01-04 09:38
2002.03.04
Помогите с SetWindowLong


4-9341
welvist
2002-01-05 23:22
2002.03.04
Использование функции , реаизованной в Dllбиблиотеке


1-9178
IronHawk
2002-02-11 18:57
2002.03.04
Где в DBGrid поставить разделитель между столбцами !