Hallo Zusammen,
ich habe vor ein 2-4 Spieler netzwerkfähiges Kartenspiel zu programmieren. Hier wollte jedem Spieler einen Thread geben, der alles was im Netzwerk ( von den anderen Mitspielern) ließt und einer der an alles schreibt, zuweisen.
Allerdings bekomme ich es nicht hin, dass der Server darauf antwortet. Ich bin gerade am verzweifeln, weil ich nicht verstehe weil es nicht funktioniert. Ich hoffe es kann mir jemand weiterhelfen.
LG
ich habe vor ein 2-4 Spieler netzwerkfähiges Kartenspiel zu programmieren. Hier wollte jedem Spieler einen Thread geben, der alles was im Netzwerk ( von den anderen Mitspielern) ließt und einer der an alles schreibt, zuweisen.
Allerdings bekomme ich es nicht hin, dass der Server darauf antwortet. Ich bin gerade am verzweifeln, weil ich nicht verstehe weil es nicht funktioniert. Ich hoffe es kann mir jemand weiterhelfen.
LG
Java:
package Client;
import java.io.IOException;
import java.io_OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.UnknownHostException;
public class Game {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String host="127.0.0.1";
int port=1355;
String name="UnknownPlayer";
Thread server = new Thread(new Server());
server.start();
try {
@SuppressWarnings("resource")
Socket client = new Socket(host,port);
System.out.println("Client[" + name +"] gestartet!" );
OutputStream out = client.getOutputStream();
PrintWriter writer = new PrintWriter(out);
Thread clientWriter = new Thread(new writer(out, writer));
clientWriter.start();
} catch (Exception e) {
System.out.println("Der Client konnte keine Verbindung zum Server aufbauen.");
e.printStackTrace();
return;
}
}
}
Java:
package Client;
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.ServerSocket;
import java.net.Socket;
public class Server implements Runnable {
ServerSocket server;
Socket client;
public Server() throws IOException {
}
@Override
public void run() {
try {
server = new ServerSocket(1355);
System.out.println("Server gestartet.");
client = server.accept();
OutputStream out = client.getOutputStream();
PrintWriter writer = new PrintWriter(out);
InputStream in = client.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
System.out.println("Ein Client hat sicher verbunden");
while (true) {
System.out.println("Warte auf Nachricht!");
String test = reader.readLine();
System.out.println("Nachricht erhalten");
System.out.println("Von Client erhalten : " + test);
writer.write(test + "\n");
System.out.println("An den Client zurückgeschickt : " + test);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java:
package Client;
import java.io_OutputStream;
import java.io.PrintWriter;
public class writer implements Runnable {
OutputStream out;
PrintWriter writer;
boolean newTask;
Message msg;
public writer(OutputStream out, PrintWriter writer) {
super();
this.out = out;
this.writer = writer;
this.newTask = true;
System.out.println("Writer erstellt");
}
public void setNewTask(boolean newTask) {
this.newTask = newTask;
}
@Override
public void run() {
System.out.println("Writer läuft");
while (true) {
writer.write("Das ist ein Test");
writer.flush();
System.out.println("Das ist ein Test" + "\n");
newTask = false;
}
}
}
Zuletzt bearbeitet von einem Moderator: