Server
Threads
Klasse Spieler
Client
So Leute das ist mein Code, ich habe vor eine Server/Client Hang Man Anwendung zu schreiben, aber ich hänge fest. Kann mir jemand helfen?
Danke im Voraus
MFG CoolerCoder
Java:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
int zaehler = 1;
try
{
//Warte auf Anfragen auf Port 13014:
ServerSocket serverSocket = new ServerSocket(13014);
System.out.println("Server gestartet!");
//Die Rückgabe in einen Ausgabestream schreiben:
Freeds singleFreed = null;
while (true) {
Socket clientSocket = serverSocket.accept();
Spieler s = new Spieler(clientSocket);
s.printWelcome();
s.getPlayerName();
if ( singleFreed == null) {
singleFreed = new Freed();
singleFreed.start();
}
singleFreed.addPlayer(s);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
/*public static void sendToAllThreads(String message) {
Iterator it = FreedListe.iterator();
while(it.hasNext()) {
PrintWriter writer = (PrintWriter) it.next();
writer.println(message);
writer.flush();
}
} */
}
Threads
Java:
import java.awt.List;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.ArrayList;
public class Freeds<PLayer> extends Thread {
String line ="";
String name;
int port;
Spieler Spieler;
PrintWriter pw;
int MethodenZaehler = 0;
public ArrayList<Spieler> SpielerListe = new ArrayList<Spieler>();
private Socket clientSocket;
public Freeds(String s, int i, Socket client, String name,PrintWriter myWriter,BufferedReader myReader) throws IOException {
// TODO Auto-generated constructor stub
this.name = s;
this.port = i;
this.clientSocket = client;
}
public Freeds() {
// TODO Auto-generated constructor stub
}
private void sendMessage(String s) {
pw.println(s);
}
public void addPlayer(Spieler s) {
SpielerListe.add(Spieler);
}
private void methodeEins(BufferedReader myReader) {
if ( SpielerListe.size() >= 2) {
for ( Spieler s : SpielerListe) {
s.frageObSieSpielenWollen();
}
// try {
// line = myReader.readLine();
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// if(line.equals("start")){
//
// }
} else {
return;
}
}
private void methodeZwei() {
for ( Spieler s : SpielerListe ) {
}
}
private void methodeDrei() {
}
private void methodeVier() {
}
private void methodeFuenf() {
}
@Override
public void run() {
String nachricht;
try {
OutputStream out = clientSocket.getOutputStream();
pw = new PrintWriter(clientSocket.getOutputStream(), true);
InputStream in = clientSocket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while(true) {
if (MethodenZaehler == 0) {
methodeEins(reader);
MethodenZaehler ++;
}
if ( MethodenZaehler == 1 ){
methodeZwei();
MethodenZaehler ++;
}
if ( MethodenZaehler == 2 ){
methodeDrei();
MethodenZaehler ++;
}
if ( MethodenZaehler == 3 ){
methodeVier();
MethodenZaehler ++;
}
if ( MethodenZaehler == 4 ){
methodeFuenf();
MethodenZaehler =MethodenZaehler-4;
}
Thread.sleep(300);
// String userEingabe;
// userEingabe = reader.readLine();
// System.out.println(name+"-Eingabe: " + userEingabe);
//
//
//
//
//
// pw.println(userEingabe);
// //sendToAll(userEingabe);
//
// if ( userEingabe.equals("Exit") || userEingabe.equals("exit")) {
// System.out.println(name+"-Client Disconnectet");
// clientSocket.close();
// reader.close();
// break;
// }
}
} catch(Exception e) {
}
}
}
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.ArrayList;
public class Spieler {
private boolean welcomeSent;
private Socket mySocket;
private PrintWriter myWriter;
private BufferedReader myReader;
private String name;
private boolean willSpielen;
private boolean spielleiter;
ArrayList<Boolean> list = new ArrayList<Boolean>();
public Spieler(Socket s) {
welcomeSent = false;
mySocket = s;
spielleiter = false;
try {
myWriter = new PrintWriter(mySocket.getOutputStream(), true);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
myReader = new BufferedReader(new InputStreamReader(mySocket.getInputStream()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void setLeiter(boolean spielleiter) {
if (!spielleiter) {
spielleiter = true;
}
}
public void getPlayerName() throws IOException {
myWriter.println("Bitte Namen eingeben.");
name = myReader.readLine();
}
public void printWelcome() {
if ( !welcomeSent) {
myWriter.println("Hallo du Spieler");
welcomeSent = true;
}
}
public void frageObSieSpielenWollen() {
myWriter.println("Willst du eine Runde mitspielen? /n j oder n");
try {
if ( myReader.readLine().equals("j") ) {
willSpielen = true;
} else {
willSpielen = false;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void setSpielleiter(ArrayList SpielerListe, int anzahlDerSpieler) {
int spielleiterInt = (int) (Math.floor(Math.random() * (anzahlDerSpieler) ))+1;
((Spieler) SpielerListe.get(spielleiterInt)).setLeiter(true);
}
}
Java:
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io_OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
try
{
//Verbindung zu Port 13000 auf localhost aufbauen:
Socket socket = new Socket ("localhost", 13014);
System.out.println("Client gestartet");
Scanner eingabe = new Scanner(System.in);
//Eine Zeile lesen:
OutputStream out = socket.getOutputStream();
PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);
InputStream in = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ( true) {
String serverAntwort = reader.readLine();
System.out.println("Server-Antwort: " + serverAntwort);
String userEingabe = eingabe.nextLine();
pw.println(userEingabe);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
So Leute das ist mein Code, ich habe vor eine Server/Client Hang Man Anwendung zu schreiben, aber ich hänge fest. Kann mir jemand helfen?
Danke im Voraus
MFG CoolerCoder
Zuletzt bearbeitet von einem Moderator: