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.InetAddress;
7 import java.net.Socket;
8
9 abstract class Connection implements Runnable {
10
11 protected Socket socket;
12 protected ObjectInputStream objectInputStream;
13 protected ObjectOutputStream objectOutputStream;
14
15 protected Thread inputThread;
16 protected boolean active = true;
17
18 protected Connection(Socket socket,
19 ObjectInputStream objectInputStream,
20 ObjectOutputStream objectOutputStream) {
21 this.socket = socket;
22 this.objectInputStream = objectInputStream;
23 this.objectOutputStream = objectOutputStream;
24 inputThread
25 = new Thread(this,
26 "net.sourceforge.simplegamenet.framework.transport.Connection thread");
27 }
28
29 public void start() {
30 inputThread.start();
31 }
32
33 abstract void sendPacket(Packet packet);
34
35 public void close() {
36 active = false;
37 if (socket != null) {
38 try {
39 socket.close();
40 } catch (IOException e) {
41 e.printStackTrace();
42 }
43 }
44 }
45
46 InetAddress getInetAddress() {
47 return socket.getInetAddress();
48 }
49
50 }