diff --git a/src/com/annimon/turrets/GameClient.java b/src/com/annimon/turrets/GameClient.java index ad756d3..813e725 100644 --- a/src/com/annimon/turrets/GameClient.java +++ b/src/com/annimon/turrets/GameClient.java @@ -11,8 +11,8 @@ public class GameClient implements Constants { private final SocketHelper helper; - public GameClient(String host) throws IOException { - helper = new SocketHelper(new Socket(host, PORT)); + public GameClient(String host, NetworkListener listener) throws IOException { + helper = new SocketHelper(new Socket(host, PORT), listener); } public SocketHelper getHelper() { diff --git a/src/com/annimon/turrets/GameServer.java b/src/com/annimon/turrets/GameServer.java index bd94e32..bb1d973 100644 --- a/src/com/annimon/turrets/GameServer.java +++ b/src/com/annimon/turrets/GameServer.java @@ -12,9 +12,9 @@ public class GameServer implements Constants { private final ServerSocket serverSocket; private final SocketHelper helper; - public GameServer() throws IOException { + public GameServer(NetworkListener listener) throws IOException { serverSocket = new ServerSocket(PORT); - helper = new SocketHelper(serverSocket.accept()); + helper = new SocketHelper(serverSocket.accept(), listener); } public SocketHelper getHelper() { diff --git a/src/com/annimon/turrets/NetworkListener.java b/src/com/annimon/turrets/NetworkListener.java new file mode 100644 index 0000000..b71931c --- /dev/null +++ b/src/com/annimon/turrets/NetworkListener.java @@ -0,0 +1,13 @@ +package com.annimon.turrets; + +/** + * + * @author aNNiMON + */ +public interface NetworkListener { + + public static final int + ON_CONNECT = 1; + + public void onStatusChanged(int status, Object data); +} diff --git a/src/com/annimon/turrets/SocketHelper.java b/src/com/annimon/turrets/SocketHelper.java index 6473f3c..de4130b 100644 --- a/src/com/annimon/turrets/SocketHelper.java +++ b/src/com/annimon/turrets/SocketHelper.java @@ -9,18 +9,26 @@ import java.net.Socket; * * @author aNNiMON */ -public class SocketHelper { +public class SocketHelper extends Thread { private final Socket socket; private final DataInputStream dis; private final DataOutputStream dos; - public SocketHelper(Socket socket) throws IOException { + private final NetworkListener listener; + + public SocketHelper(Socket socket, NetworkListener listener) throws IOException { this.socket = socket; + this.listener = listener; dis = new DataInputStream(socket.getInputStream()); dos = new DataOutputStream(socket.getOutputStream()); } + @Override + public void run() { + listener.onStatusChanged(NetworkListener.ON_CONNECT, null); + } + public void close() throws IOException { if (dis != null) dis.close(); if (dos != null) dos.close();