Mit C nach lokalen Servern suchen
-
Hi,
ich habe ein Spiel, dass einen Client hat, der zu Servern connecten kann. Nun soll der Client alle lokalen Server finden.
Wie macht man das in C? Muss ich die Subnetzmaske ermitteln und dann 2^n Server anpingen? Oder gibt es einen einfachen Befehl, der das für mich macht?
Der Code sollte möglichst plattformübergreifend funktionieren, d.h. Win und Lin.
Gruß,
voidpointer
-
also normal ist das nicht, normal machst nen server auf an nem bestimmten port auf und die clients kennen die ip des servers und connecten auf die ip, wenn dir das zu wenig ist machst einen zentralen server a der die server b,c,d usw. kennt, jeder der jetzt mitspielen will verbindet sich mit server a den er kennt und bekommt von ihm die adressen von server b,c,d usw.
kpl. ob man unter windows die pcs einer arbeitsgruppe auslesen kann, geht sicher aber das oben beschriebene verfahren ist eigentlich standard.
-
normal machst nen server an nem bestimmten port auf und die clients kennen die ip des servers und connecten auf die ip
sry deutsche sprache schwere sprache
-
voidpointer schrieb:
Der Code sollte möglichst plattformübergreifend funktionieren, d.h. Win und Lin.
So oder so ist der Thread hier falsch (wie schon der letzte). ANSI C kennt kein Netzwerk.
-
Tim schrieb:
So oder so ist der Thread hier falsch (wie schon der letzte). ANSI C kennt kein Netzwerk.
Nein. Linux-Only ist noch fälscher, da es unter Linux und Windows funktionieren muss. Und das Problem ist eindeutig ein C-Problem, kein Sprachen-unabhängiges. Gleiche Argumentation zu meinem letzten Thread.
@noobLolo : Das Problem ist, dass der Nutzer die IP noch nicht kennt. Damit er sie kennen lernt, braucht er eben diese Funktionalität.
-
nimm nen dns dann kennt er den namen und braucht sich um die ip nicht zu kümmern... denke das machen fast alle so?
-
noobLolo schrieb:
nimm nen dns dann kennt er den namen und braucht sich um die ip nicht zu kümmern... denke das machen fast alle so?
ja, dyn-DNS zum finden von teilnehmenrn mit dynamischer ip-adresse. oder ein zentraler server irgendwo im internet, über den sich die teilnehmen 'treffen'. dazwischen gibts noch allerhand komplexe verfahren, sowas nutzen dann filesharingsysteme, bittorrent, 'skype' usw.
-
voidpointer schrieb:
Nein. Linux-Only ist noch fälscher, da es unter Linux und Windows funktionieren muss. Und das Problem ist eindeutig ein C-Problem, kein Sprachen-unabhängiges.
Naja, die Standardbibliotheken von C können sowas halt nicht, du musst plattformabhängige Bibliotheken benutzten. Dir wird nichts anderes übrig bleiben als sowas in der Art zu bauen:
int findeIP(){ #ifdef WIN //windoofcode #else //linuxcode #endif }
Und für //windoofcode und //linuxcode solltet du lieber das WinAPI und Linuxforum bemühen.
-
nwp2 schrieb:
du musst plattformabhängige Bibliotheken benutzten
oder deinen ansatz nochmal überdenken dann evtl. doch nicht naja wobei sockets ja immer sowas brauchen dann spielts eh keine rolle mehr
#ifdef _WIN32 //windows #else //linux #endif
nwp2 schrieb:
Und für //windoofcode und //linuxcode solltet du lieber das WinAPI und Linuxforum bemühen.
aber bitte keine crosspostings bin ja mal gespannt wie du den spagat hin bekommst^^