Hallo,
erstmal den Code:
Dies ist ein Thread der beim Server und Client ausgeführt wird. Dies klappt auch wunderbar, ich bekomm nur ein "java.net.SocketException: Connection reset" - Fehler, wenn ein Spieler das Programm schließt. Also meine Frage, wie bekomm ich im Thread mit, dass die Verbindung verloren wurde? Danke...
Gruß,
Boltzer
erstmal den Code:
Code:
package game;
import java.awt.Point;
import java.io.*;
import ui.MorrisProtocol;
import ui.TokenEditor;
public class NetworkListener extends Thread
{
private InputStream in =null;
private OutputStream out = null;
private BufferedReader inBuffer= null;
private MorrisProtocol morrisProtocol = null;
private TokenEditor tokenEditor = null;
public String neighbourName=null;
public NetworkListener(InputStream in, OutputStream out, String currentConnectedName, MorrisProtocol currentProtocol, TokenEditor currentTokenEditor) {
this.morrisProtocol = currentProtocol;
this.tokenEditor = currentTokenEditor;
this.in = in;
this.inBuffer = new BufferedReader (new InputStreamReader (in));
this.out = out;
this.neighbourName = currentConnectedName;
setDaemon(true);
}
public void run()
{
while(true)
{
if(isInterrupted()) break;
try {
String message = null;
message = inBuffer.readLine();
if (message ==null) this.interrupt();
if (message.equals("message")){
message = inBuffer.readLine();
System.out.println(message);
morrisProtocol.addChatMessage(neighbourName, message);
}
if (message.equals("StartDrag")){
int x = Integer.parseInt(inBuffer.readLine());
int y = Integer.parseInt(inBuffer.readLine());
System.out.println("StartDragNetwork");
Point pos = new Point(x,y);
tokenEditor.startDrag(pos,true);
}
if (message.equals("DoDragging")){
int x = Integer.parseInt(inBuffer.readLine());
int y = Integer.parseInt(inBuffer.readLine());
System.out.println("DoDraggingNetwork");
Point pos = new Point(x,y);
tokenEditor.doDragging(pos,true);
}
if (message.equals("StopDrag")){
int x = Integer.parseInt(inBuffer.readLine());
int y = Integer.parseInt(inBuffer.readLine());
System.out.println("StopDragNetwork");
Point pos = new Point(x,y);
tokenEditor.stopDrag(pos,true);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
Dies ist ein Thread der beim Server und Client ausgeführt wird. Dies klappt auch wunderbar, ich bekomm nur ein "java.net.SocketException: Connection reset" - Fehler, wenn ein Spieler das Programm schließt. Also meine Frage, wie bekomm ich im Thread mit, dass die Verbindung verloren wurde? Danke...
Gruß,
Boltzer