![]() |
UdpSocket OnRead Event hinzufügen
Hallo.
Da der UdpSocket kein OnRead event hat, das ausgelöst wird, wenn daten eintreffen, möchte ich dem UdpSocket dafür ein event hinzufügen. ich hab mir einiges zu WSAAsyncSelect angeschaut. Zudem weiß ich dass der status FD_READ mir anzeigt wenn Daten ankommen. Allerdings habe ich bisher nix gefunden, was mir einigermaßen beschreibt, wie ich das verknüpft kriege, dass bei einer MSG mit dem inhalt FD_READ eine methode ausgelöst die, die daten empfängt. Gruß zum Herrentag und schon ma danke im Voraus! Jokerface |
Re: UdpSocket OnRead Event hinzufügen
Du willst einer vorhandenen Komponente ein neues Ereignis hinzufügen? Dann musst du irgendwie in die Fensterprozedur kommen, denn diese empfängt ja die Benachrichtigung. Wie sieht diese Komponente denn aus?
|
Re: UdpSocket OnRead Event hinzufügen
ich nehm nen ganz normalen TUDPSocket und hab grad was gefunden.
Natürlich muss ich den UdpSocket in ne neue klasse einbetten. hab den codeschnipsel grad im delphi-forum gefunden:
Delphi-Quellcode:
das wars schon ^^
procedure TUdpSockUtil.WinSockEvent(var Msg: TMessage);
begin if (Msg.Msg = USU_WM_ASYNCSELECT) then if (Msg.LParamHi = 0) then begin if (Msg.LParamLo = FD_READ) then begin // Daten eingetroffen if Assigned(FOnReceive) then FOnReceive(Self); end else if (Msg.LParamLo = FD_WRITE) then begin if Assigned(FOnWriteReady) then FOnWriteReady(Self); // Bereit zum Senden end; end else if Assigned(FOnError) then FOnError(Self,Msg.LParamHi) else raise EUSUError.CreateResFmt(@sWindowsSocketError, [SysErrorMessage(Msg.LParamHi), Msg.LParamHi, 'MessageHandler']); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz