I have a connection class that will print a message to the server if the session is connected and logged on
Boolean connected is set to true when socket established. Boolean logged on is set when server sends logon msg (for this test I set to true manually)
When the the //System.out.println [line 4] is commented out "test" message never gets sent to the server. When I uncomment line 4 the "test" message is sent every 5 seconds as required.
new Thread() {
public void run() {
while (connected) {
//System.out.println("loggedOn = " + loggedOn);
while (loggedOn) {
//System.out.println(loggedOn);
try {
//send hb msg
sendMsg(heartbeat.serialize());
sleep(5000);
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
}
}
}
}.start();
updated to show variable declaration
public class ConnectionManager {
private Socket socket;
private DataOutputStream dataOutputStream;
private DataInputStream dataInputStream;
private Heartbeat heartbeat = new Heartbeat();
public Boolean connected = false;
public Boolean loggedOn = false;
public ConnectionManager(String ip, int port) {
System.out.println("DEBUG ConnectionManager.ConnectionManager " + ip + " : " + port);
try {
socket = new Socket(ip, port);
dataOutputStream = new DataOutputStream(socket.getOutputStream());
dataInputStream = new DataInputStream(socket.getInputStream());
connected = true;
} catch (Exception e) {
e.printStackTrace();
}
new Thread() {
public void run() {
while (connected) {
//System.out.println("loggedOn = " + loggedOn);
while (loggedOn) {
//System.out.println(loggedOn);
try {
//send hb msg
sendMsg(heartbeat.serialize());
sleep(5000);
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
}
}
}
}.start();