Hallo,
ich habe folgendes Problem: Ich muss einen LottoServer und einen LottoClient erstellen. Der Client soll 6 Zahlen an den Server übermitteln und der Server soll diese mit den 6 gezogen Zahlen vergleichen und dann eine Antwort mit dem Ergebnis an den Client schicken.
Jedoch empfängt der Server erst gar nicht die 6 Zahlen. Er schreibt nichts weiter außer als "Warte auf Verbindungen...".
Client code:
Server code:
ich habe folgendes Problem: Ich muss einen LottoServer und einen LottoClient erstellen. Der Client soll 6 Zahlen an den Server übermitteln und der Server soll diese mit den 6 gezogen Zahlen vergleichen und dann eine Antwort mit dem Ergebnis an den Client schicken.
Jedoch empfängt der Server erst gar nicht die 6 Zahlen. Er schreibt nichts weiter außer als "Warte auf Verbindungen...".
Client code:
Java:
import java.net.*;
import java.io.*;
public class LottoClientAG {
public static void main(String[] args) throws IOException {
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
int [] zahl;
zahl = new int [6];
int i = 0;
String inData;
System.out.println("=================================================");
System.out.println("Willkommen beim LottoAG!");
System.out.println("=================================================");
System.out.println("Gewinne können nicht als echtes Geld ausgezahlt werden!");
System.out.println();
System.out.println("Achtung, Glücksspiel kann süchtig machen! Ab 18!");
System.out.println();
System.out.println("Spielprinzip: Lotto 6 aus 49. D.h. sie dürfen 6 verschiedene Zahlen wählen.");
System.out.println();
String host = "localhost";
int port = 33333;
try {
Socket sock = new Socket(host, port);
OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
System.out.println("Sie sind nun mit dem LottoAG-Server verbunden. Die Spiel Regeln finden sie oben.");
System.out.println("Sie dürfen nun ihre gewünschten Zahlen auswählen.");
for (i = 0; i < 6 ; i++) {
System.out.println("Geben sie ihre " + (i + 1) + "te Zahl ein:");
System.out.println();
inData = stdin.readLine();
zahl[i] = Integer.parseInt(inData);
if (zahl[i] < 1 || zahl[i] > 49) {
System.out.println("Ungültige Eingabe! Bitte erneut tippen.");
i--;
} // end of if
for (int n = 0; n < i ; n++ ) {
if (zahl[i] == zahl[n]) {
System.out.println("Diese Zahl hatten Sie bereits eingegeben! Bitte erneut tippen.");
i--;
} // end of if
} // end of for
out.write(zahl[i]+"/r/n");
out.flush();
}
System.out.println("Die Zahlen werden nun dem Server übermittelt. Bitte gedulden sie sich, bis das Ergebnis berechnet wurde.");
InputStream antwort = sock.getInputStream();
BufferedReader sin = new BufferedReader(new InputStreamReader(antwort));
String aw = sin.readLine();
System.out.println(aw);
sock.close();
} catch (UnknownHostException uhe) {
System.err.println(uhe);
} catch (IOException ioe) {
// kein Server, dann IOException
} // end of try
}
}
Server code:
Java:
import java.net.*;
import java.io.*;
import java.lang.Math.*;
class LottoServerAG
{
public static void main (String[] args) throws IOException
{
int [] zahl;
zahl = new int [6];
int [] erg;
erg = new int [6];
int i = 0;
int eingabe = 0;
int counter = 0;
//String host = "localhost";
int port = 33333;
ServerSocket server = new ServerSocket(port);
Socket connection = null;
while (true) {
System.out.println("Warte auf Verbindungen...");
connection = server.accept();
InputStream anfrage = connection.getInputStream();
BufferedReader sin = new BufferedReader(new InputStreamReader(anfrage));
for (i = 0; i < 6 ; i++) {
zahl[i] = Integer.parseInt(sin.readLine());
}
System.out.println("Der Spieler hat folgende Zahlen gewählt:" + zahl[0] + "," + zahl[1] + "," + zahl[2] + "," + zahl[3] + "," + zahl[4] + "," + zahl[5]);
/*for (i = 0; i < 6 ; i++) {
zahl[i] = Integer.parseInt(sin.readLine());
} */
i = 0;
for (i = 0; i < 6 ; i++) {
erg[i] = (int)(Math.random() * 49) + 1;
for (int n = 0; n < i ; n++ ) {
if (erg[i] == erg[n]) {
i--;
} // end of if
} // end of for
}
for (int j = 0; j < 6 ; j++ ) {
for (int k = 0; k < 6 ; k++ ) {
if (zahl[j] == erg[k]) {
counter++;
} // end of if
} // end of for
} // end of for
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
System.out.println("Der Spieler hat " + counter + " Übereinstimmungen \r\n");
out.write("Sie haben " + counter + " Übereinstimmungen \r\n");
out.flush();
if (counter == 3) {
System.out.println("Der Spieler hat 13 Euro gewonnen \r\n");
out.write("Ihr Gewinn beträgt 13 Euro! \r\n");
out.flush();
} // end of if
if (counter == 4) {
System.out.println("Der Spieler hat 150 Euro! \r\n");
out.write("Ihr Gewinn beträgt 150 Euro! \r\n");
out.flush();
} // end of if
if (counter == 5) {
System.out.println("Der Spieler hat 10000 Euro! \r\n");
out.write("Ihr Gewinn beträgt 10000 Euro! \r\n");
out.flush();
} // end of if
if (counter == 6) {
System.out.println("Der Spieler hat den Jackpot gecknackt! Sein Gewinn beträgt 10000000 Euro! Wir können nun Insolvenz anmelden. \r\n");
out.write("Jackpot!!! Ihr Gewinn beträgt 10000000 Euro! Geh feiern du glücklicher Hund! \r\n");
out.flush();
} // end of if
} // end of while
}
}
Zuletzt bearbeitet: