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

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

KOLScktComp [Delphi, Windows]


DeimosX7 ©   (2004-07-28 11:36:00) 

Как правильно создать событие ServerSocket.OnClientRead ?
я пробовал так :

procedure ServerSocketClientRead (Sender: PObj; Socket: PCustomWinSocket);
begin
 //код
end;

и вызов :

ServerSocket.OnClientRead := TOnEvent(MakeMethod(nil,@ServerSocketClientRead));


Компиляторговорит :
[Error] main.dpr(90): Incompatible types: Parameter lists differ


Gandalf   (2004-08-17 22:41:00) [1]

И что происходит?


DeimosX7   (2004-07-29 17:05:00) [2]

хм.. тут вот  какая проблема..
я пытаюсь написать прогу для удаленного ведения log-ов
на базе сокетов
но ни чего не выходит..
упростил все до минимума в целях проверки,
та-же история
может подскажет кто?

условия работы такие:
2 компа

сервер 192.168.1.2
клиент 192.168.1.1
-------------------------------------
вот код:

сервер:
пишет все полученное в мемо


program TestServer;

uses
 kol,
 Windows,
 Messages,
 KOLScktComp;

var
form,memo:Pcontrol;
ServerSocket:TKOLServerSocket;
//---------------------------------

procedure ServerSocketClientRead (Sender: PObj; Socket: PCustomWinSocket);
begin
 memo.add(socket.receiveText);
end;

//---------------------------------
begin
Applet:=NewApplet('TestServer');
form:=NewForm(Applet,'TestServer');
Form.Style := WS_SYSMENU or WS_VISIBLE ;
form.CenterOnParent ;
Form.Font.FontName := 'MS Sans Serif';
Form.Font.FontHeight := 9;
memo:=NewEditBox( Form,[eoMultiline,eoNoHScroll,eoNoVScroll,eoReadonly]).SetPosition(2,38).SetSize(290,160);

ServerSocket := NewServerSocket;
serverSocket.Port:=2066;
Form.Add2AutoFree(ServerSocket );
serverSocket.Active:=true;

serverSocket.OnClientRead:= TSocketNotifyEvent (MakeMethod(nil,@ServerSocketClientRead));

applet.StayOnTop:=true;
form.SetSize(300,300);
run(Applet);

end.

//--------------------------------

клиент:
раз в 4 секунды посылает сообщение(в тестовых целях)
видимой части не имеет..

program STest;

uses

 kol,
 Windows,
 Messages,
 KOLScktComp;

var
clientSocket:TKOLClientSocket;

begin

ClientSocket := NewClientSocket;
clientSocket.Port:=2066;

while true do
begin
   clientSocket.Address:='192.168.1.2';
   clientSocket.Active:=true;
   clientSocket.Socket.SendText('message');
   clientSocket.Active:=false;
   sleep(4000);
end;

end.


fellix   (2004-07-28 12:16:00) [3]

... OnClientRead := TSocketNotifyEvent(MakeMethod(...


Наверх

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