AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi UdpSocket OnRead Event hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

UdpSocket OnRead Event hinzufügen

Ein Thema von jokerfacehro · begonnen am 21. Mai 2009 · letzter Beitrag vom 21. Mai 2009
Antwort Antwort
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#1

UdpSocket OnRead Event hinzufügen

  Alt 21. Mai 2009, 17:59
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
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: UdpSocket OnRead Event hinzufügen

  Alt 21. Mai 2009, 18:08
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?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: UdpSocket OnRead Event hinzufügen

  Alt 21. Mai 2009, 18:10
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:
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;
das wars schon ^^
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz