Zitat von
.chicken:
Also wenn jetzt einer einen Server erstellt (dh er klickt zB auf Neues Spiel), wie mach ich das dann? Ruf ich dann als externes Programm den Server auf oder wie? Da Blick ich grad net ganz durch ^^
Dazu musst Du Dir kurz klar machen wie ein Server arbeitet. Ein Server funktioniert eigentlich ganz einfach, Du startest ihn und er lauscht auf einem gewissen Kanal (hier durch
IP und Port geg.). Kommt jetzt ein Klient, der was möchte, dann setzt der eine Anfrage auf diesem Kanal ab. Entspricht die Anfrage dem Protokoll, wird der Server natürlich antworten und Du hast Kommunikation.
Die Funktionalität des Servers packst Du nun in eine eigene Klasse und gut ist. Was Du dann hast ist die Funktionalität in einer Klasse, mehr nicht. Das heißt, dass so noch kein Server läuft. Möchte jmd. ein neues (Netzwerk-)Spiel erstellen, so musst Du erst eine Instanz der Klasse erstellen und ggf. zusätzlich noch den Server aktivieren (erst dann lauscht der wirklich auf dem Kanal).
Sehr direkt zu Deiner Frage, es macht hier mehr Sinn, dass Dein Programm gleichzeitig als Client und Server agieren kann. Ein Server kann aktiv oder inaktiv sein. Solange der Server inaktiv ist, ist der Kanal nicht belegt und keiner beantwortet Anfragen, die dort abgesetzt werden. Erst wenn Du denn aktivierst wird er Anfragen entgegen nehmen.
Ähnlich sieht es mit der Clientfunktion aus, erst wenn Du ihm sagst, dass er sich mit einem bestimmten Server verbinden soll, wird der eine Nachricht abschicken. Deswegen kannst Du Beides ohne Probleme ins gleiche Programm packen und auf die entsprechende Funktionalität dort zurückgreifen, wo Du sie wirklich brauchst.