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 }