![]() |
Client soll nach server suchen
Wie bekomme ich einen client dazu, im netzwerk nach einem server zu suchen, wenn ich die IP nicht kenne?
MfG Daniel |
Re: Client soll nach server suchen
[offene frage]
|
Re: Client soll nach server suchen
Gar nicht. Es sei denn, der Server ist bei DynDNS oder etwas ähnlichem angemeldet.
Du könntest auch IP Adressen scannen und schauen, ob der Port, den dein Programm benutzt, offen ist. Alternativ sind natürlich noch Serverlisten möglich, wodurch du aber wieder serverabhängig wirst. |
Re: Client soll nach server suchen
Wie machen das denn Programme wie ICQ, die sich gegenseitig im Netzwerk suchen?
Es muss doch möglich sein, an einen server zu senden ohne seine IP zu kennen... MfG Daniel |
Re: Client soll nach server suchen
ICQ benutzt einen zentralen Server: login.icq.com auf Port 5190
Auf diesem Server werden übrigens auch die Userlisten gespeichert! |
Re: Client soll nach server suchen
Ich will ein Projekt schreiben (Hab ich schon, nur die IP muss man immer angeben...das nervt!), mit dem von vieles Clients in einem Netzwerk Daten auf einen Server geschickt werden, der die dann in dateien schreibt. Leider werden in diesem netzwerk keine festen IP's vergeben...
Gibs da echt gar nix? MfG D.H. |
Re: Client soll nach server suchen
nein im internet nicht..
aber im lan könntest du broadcasts via udp schicken und dann melden sich z.b. alle server zurück *hier bin ich* die broadcast adresse ist bei einem netzwerk mit submask 255.255.255.0 die 255.255.255.255 also einfach deine ip und dann am ende .255 das is die addy wo dann an alle pcs in dem lan geht |
Re: Client soll nach server suchen
Puh, bisschen schnell..., haste ne page, wo das erklärt wird? Aber vielen Dank, hört sich nach dem an was ich suche! Hab nur mit LAN zu tun!
|
Re: Client soll nach server suchen
ein bisschen googlen und mit indy udpclient/udpserver rumspielen und dann geht das schon..
|
Re: Client soll nach server suchen
Hallo
Dezentrale Netzwerkprogramme sind schon seit der Steinzeit Probleme :) Im Prinzip brächte man einen Server, der zumindestens die IP des wirklichen Servers speichert. Sobald der Server offline geht müssen sich die Clients absprechen, wer denn jetzt Server macht und der der es wird muss seine IP wieder eintragen. So hast du halt einen Server, der nur eine IP speichert und setzt. Lässt sich mit PHP, Perl usw. ganz leicht regeln. Aber dann hast du wieder kein wirklich Dezentrales Netzwerk. Im Prinzip ist das mit dem aktuellen TCP/IP Protokoll unmöglich, da der Zeitaufwand für die IP-Suche knapp 1 Millarde Sekunden betragen würde, wenn wir davon ausgehen, das 5 Scans pro Sekunde möglich sind. Wenn du das ganze auf einen Netzwerkbereich eingrenzt dann dauert es nur noch knapp 10 Sekunden, wenn wir davon ausgehen dass das Netzwerk 500% schneller ist. Das wäre eine Überlegung, wenn alle IP's mit z.B. 192.168.0.XXX beginnen. Gruß |
Re: Client soll nach server suchen
Danke euch allen, dann muss ich doch jedesmal die IP angeben...Naja, hilft wohl nix!
MfG Daniel |
Re: Client soll nach server suchen
hallo erstmal,
hab fast das selbe problem. ich habs mal so gemacht dass ich einfach in einer schleife das lokale lan dursuche. dh er versucht zu jeder ip (1..254) auf nem bestimmten port eine verbindung herzustellen. das funktioniert auch FAST. ich bekomm natürlich jedes mal eine socks fehlermeldung wenn die verbindung fehlschlägt. wenn ich die noch unterdrücken könnte wärs ideal. mfg |
Re: Client soll nach server suchen
@mwiesbau
schonmal was von try...except gehört ? :wink: mfg |
Re: Client soll nach server suchen
@wtf
hasst du dich wirklich schon mal mit socket programmierung beschäftigt?? wenn ja dann müsstest du vielleicht wissen dass man die socket exeptions nicht mit try exept abfangen kann. für die zukunft möchte ich dir raten, wenn du dir nicht zu 100% sicher bist spar dir wenigstens den smiley zum schluss. ps.: nehms dir nicht krumm, danke für deinen versuch mir zu helfen |
Re: Client soll nach server suchen
mwiesbau, das stimmt so nicht was du sagst...schau dir dazu einfach mal die indy hilfe und die demos an.
synonym |
Re: Client soll nach server suchen
Im LAN benutzt man normalerweise UDP Broadcasts, im WEB sollte man sich auf DynDNS.org stützen.
Gruß Hagen |
Re: Client soll nach server suchen
ich kann nur nochmal mein programm anpreisen.
wenn ich das richtig vertanden hat dann macht mein programm genau das was du willst. es sucht sich im lan alle anderen clients und kan mit denen kommunizieren. ich hab das über UDP-Broadcast gelöst. (is übrigens n chatprog.) ![]() |
Re: Client soll nach server suchen
@synonym
danke, ich hatte schon einmal eine lösung für mein problem und ich weiss dass es mit try except nicht funktioniert. ausserdem verwende ich keine indy komponenten sondern Tserversocket, Tclientsocket. da ich dass problem wi oben erwähnt schon einmal gelöst hatte (habs wieder vergessen) weiss ich dass das ganze über fehlercodes läuft. brauchst dir ja nur die prozedure on error ansehen. |
Re: Client soll nach server suchen
Zitat:
im Internet kann man statt Broadcasts auch Mutlicasts verwenden. Das sollte durch jedes Subnet gehen. Falls der Provider das zuläst :). Gruß |
Re: Client soll nach server suchen
Ich bin der festen überzeugen das man um eine statische IP für den server nicht rumkommt - nach der IP Adresse mit einer Schleife zu suchen ist meiner Meinung nach inakzeptabel - Aber wems gefällt :stupid:
@mwiesbau haben wir denn schlecht geschlafen - wie wärs wenn du mal nicht gleich so gereizt reagierst :wink: (Ups,ich darf ja keine Smileys mehr verwenden) Sorry, für meine Falschaussage - ich habs ja nicht ausprobiert, war halt nur ne idee die nicht funktioniert. Mfg |
Re: Client soll nach server suchen
für alla die'es interessiert wie man die socket exceptions abfangen kann
den code einfach in die on error procedure des clientsocket's eintragen.
Code:
if error > -1 then do //Fängt jede message ab begin memo1.lines.add('Error while connecting'); end; |
Re: Client soll nach server suchen
Wenn das System im LAN komplett auf M$ Windows läuft, dann kann man auch alle Clients, die im Netz sind, aus Windows filtern (siehe Code-Library).
Denn dann wäre Broadcasting kein Problem mehr :gruebel: |
Re: Client soll nach server suchen
Im Lan sollte ohne Probleme möglich sein, mit 1000 Threads oder sogar weit mehr zu scannen, laut speedmeter.de schafft ja sogar meine DSL-Leitung 300... Wenn man von einem timeout von 1 s ausgeht, kann man den kompletten Bereich 192.168.*.* in etwas mehr als einer Minute abscannen, für 192.*.*.* bräuchte man 4,5 stunden, aber da man ja in der THEORIE dann auf andere 'Clients' stößt die ja schon andere Clients kennen, ginge das ganze ja schneller vorran...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 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