1 package net.sourceforge.simplegamenet.framework.transport; 2 3 import java.io.IOException; 4 import java.io.ObjectInputStream; 5 import java.io.ObjectOutputStream; 6 import java.net.Socket; 7 8 public class ClientConnection extends Connection { 9 10 private ClientModem clientModem; 11 12 public ClientConnection(ClientModem clientModem, Socket socket, 13 ObjectInputStream objectInputStream, 14 ObjectOutputStream objectOutputStream) { 15 super(socket, objectInputStream, objectOutputStream); 16 this.clientModem = clientModem; 17 } 18 19 public void run() { 20 while (active) { 21 try { 22 Packet packet = (Packet) objectInputStream.readObject(); 23 if (active) { 24 clientModem.processPacketInEventThread(packet); 25 } 26 } catch (ClassNotFoundException exception) { 27 active = false; 28 clientModem.processDisconnectionInEventThread(); 29 } catch (ClassCastException exception) { 30 active = false; 31 clientModem.processDisconnectionInEventThread(); 32 } catch (IOException exception) { 33 active = false; 34 clientModem.processDisconnectionInEventThread(); 35 } 36 } 37 } 38 39 public void sendPacket(Packet packet) { 40 if (active) { 41 try { 42 objectOutputStream.writeObject(packet); 43 } catch (IOException exception) { 44 active = false; 45 clientModem.processDisconnectionInEventThread(); 46 } 47 } 48 } 49 50 }