Entwickler-Ecke
Internet / Netzwerk - Frage zu UDP-Broadcast
Sorryman - Mi 23.04.03 09:10
Titel: Frage zu UDP-Broadcast
Ich hab gelesen, dass die Datenpakete ja nicht immer ankommen... Das heisst doch theoretisch, dass ich in einem bestimmten Zeitabstand mehrmals senden sollte um sicher zu gehen, dass die Daten auch ankommen!
Ich hab nämlich ebenfalls vor auf einem Computer die Liste der angeschalteten PCs anzeigen zu lassen! Gleichzeitig möchte aber auch anzeigen lassen, welcher Benutzer gerade angemeldet ist und deswegen müsste ich sichergehen, dass die Daten auch ankommen!
Mir ist natürlich klar, dass das Programm dann auf jedem Rechner laufen müsste...
Kann man das noch anders realisieren oder ist es so in der Art schon gut genug?
focus - Mi 23.04.03 09:21
in meinem derzeitigen prog sende ich 3x hintereinander ein whosallive und muss sagen das reicht bei weitem allerdings verwende ich das nur um eine liste aller aktiven teilnehmer zu erhalten... wenn du wichtige daten wie benutzerlisten o.ä sendest würde ich dir raten zunächst eine liste der verfügbaren rechner zu erstellen und zu jedem einzeln die connection aufzubauen(tcp)...um sicherzustellen das auch alles angekommen ist...und vor allem bei wem
gruss
michael
Sorryman - Mi 23.04.03 10:02
Ich wollte das eigentlich so machen:
- 4 Computer
- jeder sendet seinen Computernamen + Benutzernamen an jeden der anderen 3
- jeder der das Paket empfängt teilt das Paket auf in Computer und User
- und trägt diese in eine liste ein
focus - Mi 23.04.03 10:44
dann würde ich beim broadcasten bleiben.
gruss
michael
Sorryman - Mi 23.04.03 13:13
Jetzt hab ich aber ein kleines Problem:
Delphi sagt mir:
[Error] Main.pas(21): Undeclared identifier: 'TIdSocketHandle'
Warum???
focus - Mi 23.04.03 13:16
so blank kann man darüber keine aussage treffen...
für welche methode hast du dich entschieden?
focus - Mi 23.04.03 13:26
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| uses IdUDPclient;
procedure sendBroadcast; var Broadcaster: TIdUDPClient; begin Broadcaster := TIdUDPClient.create(nil); Broadcaster.Active := true; Broadcaster.Broadcast('whos allive?', 9090); Broadcaster.free; end; |
das läuft auf jeden fall...
gruss
michael
(ps: habe im nachhinein dochnoch den ganzen ballast rausgeschmissen)
Sorryman - Mi 23.04.03 14:58
Danke! Hab das eingebunden und jetzt funktioniert es auch...
Jetzt hab ich wieder ein anderes Problem!
Quelltext
1:
| Windows.GetComputerName(Buffer, Size); |
Diseser Code soll ja bekanntlich den Computernamen ausgeben... Funktioniert auch unter XP, aber unter 98 bekomm ich nur irgendwelche Zeichen...
Hab in der Hilfe gelesen, dass es unter Win32s nicht läuft... kann ich bei 98 den Namen irgendwie anders auslesen?
focus - Mi 23.04.03 15:08
damit schonmal probiert?(k.a. ob das unter win98 tut...aber ich denke schon)
GetHostName(Buffer, Sizeof(Buffer));
gruss
michael
Sorryman - Mi 23.04.03 15:15
Schönen Dank auch :-)
Jetzt hab ich glaub ich alles was ich brauche!!!
Nur komisch, dass dieser Befehl nicht immer benutzt wird, wenn er bei jedem System den Namen ausliest...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!