View Javadoc

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  }