AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Netzwerk-Broadcast mit Win.-API
Tutorial durchsuchen
Ansicht
Themen-Optionen

Netzwerk-Broadcast mit Win.-API

Ein Tutorial von BrightAngel · begonnen am 23. Feb 2008 · letzter Beitrag vom 24. Feb 2008
Antwort Antwort
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: Netzwerk-Broadcast mit Win.-API

  Alt 24. Feb 2008, 11:20
recv kann man nehmen, aber recvfrom ist für UDP besser geeignet. Dadurch erfährst du auch, von wem das Päckchen gekommen ist.

Und du hast auch richtig bemerkt, das recv (und auch recvfrom) per default blockierend ist. Das heißt, die Funktion kehrt erst zurück, wenn sie auch etwas empfangen hat (also etwas im Puffer des Sockets liegt). du kannst das Socket natürlich auf nichtblockierend schalten, aber der Ansatz mit der Message ist auch super. Du musst den Befehl WSAAsyncSelect aufrufen. Damit kannst du ein Windowhandle festlegen, an das eine Message gesendet wird, wenn Daten empfangen werden (nebenbei wird dein Socket dadurch auch nichtblockierend). Und dann kannst du recvfrom in der Messgebearbeitung aufrufen.

Eine Annahme von dir ist allerdings falsch. Du bekommst nämlich die Message nicht zurück, zumindest nicht an dein Socket. In meinem Beispiel wird an den Port 6000 gesendet. Und dein Socket liegt irgendwo zwischen 1024 und 5000. Das sucht sich Windows aus beim ersten Sendto. Wenn du den Port deines eigenen Sockets selber festlegen willst, dann benötigst du die Funktion "bind". Dann kannst du den Port zum Senden nehmen und wirst auch gleich die Antwort mitbekommen.

Ich hatte für den Tutorialwettbewerb auf Delphi-Treff ein kleines Programm geschrieben, wo über Buttons jeder einzelne Socket-Befehl ausgeführt wird. (Liegt im Anhang)
Angehängte Dateien
Dateityp: zip simplesocket_163.zip (272,5 KB, 51x aufgerufen)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 05:13 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