Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Процедура обработки OnClientRead [D7, Win95/98]


balepa ©   (2006-03-28 10:45:00) 

Не могу понять как написать процедуру обработки для Получения пришедших данных плз небольшой кодик или направьте куда-нибудь (TServerSocket,D7,Win98)


Сергей М.   (2006-03-28 11:19:00) [1]


> как мне описать процедуру


Эта процера д.б. описана не как регулярная, а как метод любого класса, например, класса формы.

interface

TForm1 = class(TForm)
..
 procedure ClientRead(Sender: TObject; Socket: TCustomWinSocket);
..
end;

implementation

..

procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
..
end;


balepa   (2006-03-28 11:14:00) [2]

var
...
ClientRead: TSocketNotifyEvent;

implementation

? ClientRead(???????);
var
Len: Integer;
Buf: Pointer;
begin
..

Len := Socket.ReseiveLength;
ShowMessage('Ожидается ' + IntToStr(Len) + ' байт');
GetMem(Buf, Len);
try
Len := Socket.ReceiveBuf(Buf^, Len);
ShowMessage('Фактически принято ' + IntToStr(Len) + ' байт');
finally
Freemem(Buf);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 TimeL.Caption:= DateTimeToStr(Now);
 TimeL.Left:= (Form1.Width div 2)-(TimeL.Width div 2);
 QueryWork:= 0;
 ServerSocket.Port:= 5000;
  ................................................
  ServerSocket.OnClientRead:= ClientRead;
 ServerSocket.Active:= True;
end;


balepa   (2006-03-28 11:05:00) [3]

Спасибо конечно, но как мне описать процедуру
procedure ?.ClientRead(??????)


Сергей М.   (2006-03-28 10:53:00) [4]

Примерно так :

var
 Len: Integer;
 Buf: Pointer;
..

Len := Socket.ReseiveLength;
ShowMessage('Ожидается ' + IntToStr(Len) + ' байт');
GetMem(Buf, Len);
try
 Len := Socket.ReceiveBuf(Buf^, Len);
 ShowMessage('Фактически принято ' + IntToStr(Len) + ' байт');
finally
 Freemem(Buf);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо