예제 #1
0
  // Run method
  public void run(){
    exptStartTime = (new Date()).getTime();

    // create client to server (Event Listener)
    Socket socket = null;
    PrintWriter out = null;

    try {
      socket = new Socket (ipOfEventListener, portOfServer);
      out = new PrintWriter(socket.getOutputStream(), true);

      while (true){

        while (msgBuffer.lock.tryLock()) {
			// keep polling msgBuffer
	        while (!exptTimeUp() & msgBuffer.isEmpty())
	          ; // get stuck here until msgBuffer contains something or experiment period is up

	        

	        // send message to Event Listener & clear message buffer
	        out.println(msgBuffer.getWholeMsg());
	        System.out.println("Sent: "+ msgBuffer.getWholeMsg());
	        System.out.println("---");
	        msgBuffer.clear();
			msgBuffer.lock.unlock();
		}
		
		// exit if period for experiment is up
        if (exptTimeUp())
          break;

      }
      // Cleanup
      out.close();
      socket.close();
    }
    catch (IOException e) {
      System.err.println("*** FATAL ERROR: " + e.getMessage());
      System.err.println("*** LIKELY REASON: Make sure Push Server is up and listening at the correct IP address and port.");
      System.exit(1);
    }
    catch (Exception e){
      System.err.println("*** FATAL ERROR: " + e.getMessage());
      System.exit(1);
    }
    System.out.println("PushClient exited normally...");
  }