41 lines
1006 B
Java
41 lines
1006 B
Java
package network;
|
|
|
|
import java.io.IOException;
|
|
import java.io.ObjectOutputStream;
|
|
import java.net.Socket;
|
|
|
|
import network.protocol.Packet;
|
|
import network.protocol.PacketVisitor;
|
|
|
|
public abstract class Connexion implements PacketVisitor {
|
|
|
|
final Socket socket;
|
|
private final ObjectOutputStream objectOutputStream;
|
|
private final ConnexionThread connexionThread;
|
|
|
|
public Connexion(Socket socket) throws IOException {
|
|
this.socket = socket;
|
|
this.objectOutputStream = new ObjectOutputStream(this.socket.getOutputStream());
|
|
this.connexionThread = new ConnexionThread(this);
|
|
this.connexionThread.start();
|
|
}
|
|
|
|
public boolean isClosed() {
|
|
return this.socket.isClosed();
|
|
}
|
|
|
|
public synchronized void sendPacket(Packet packet) {
|
|
try {
|
|
objectOutputStream.writeObject(packet);
|
|
objectOutputStream.flush();
|
|
} catch (IOException e) {
|
|
System.err.println("Error while sending packet ! " + e.getLocalizedMessage());
|
|
close();
|
|
}
|
|
}
|
|
|
|
public void close() {
|
|
this.connexionThread.cancel();
|
|
}
|
|
}
|