PageRenderTime 25ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/Server/src/communicators/httpd/org/roomwareproject/communicator/httpd/Communicator.java

http://roomware.googlecode.com/
Java | 73 lines | 52 code | 21 blank | 0 comment | 0 complexity | 58cb038b178fe59ddd73407ab87f55b3 MD5 | raw file
  1. package org.roomwareproject.communicator.httpd;
  2. import org.roomwareproject.server.*;
  3. import org.roomwareproject.utils.*;
  4. import java.util.*;
  5. import java.util.logging.*;
  6. import java.io.*;
  7. import java.beans.*;
  8. import java.net.*;
  9. public class Communicator extends AbstractCommunicator {
  10. public final static String
  11. DEFAULT_WEB_SERVER_PORT_PROPERTY = "4040";
  12. protected boolean doLoop = true;
  13. protected ServerSocket socket;
  14. public Communicator(Properties properties, RoomWareServer rws) throws RoomWareException {
  15. super(properties, rws);
  16. init();
  17. }
  18. public void messageReceived(MessageEvent messageEvent) { }
  19. public void propertyChange(PropertyChangeEvent event) { }
  20. protected void init() throws RoomWareException {
  21. try {
  22. int webPort = Integer.parseInt(
  23. properties.getProperty("web-server-port",
  24. DEFAULT_WEB_SERVER_PORT_PROPERTY));
  25. properties.setProperty("web-server-port", webPort + "");
  26. socket = new ServerSocket(webPort);
  27. }
  28. catch(IOException cause) {
  29. throw new RoomWareException("Can't start server port");
  30. }
  31. catch(NumberFormatException cause) {
  32. throw new RoomWareException("Could not parse property: "
  33. + cause.getMessage());
  34. }
  35. }
  36. public void run() {
  37. while(doLoop) {
  38. try {
  39. Socket client = socket.accept();
  40. Thread t = new Thread(new WebService(roomwareServer, client, logger));
  41. t.start();
  42. }
  43. catch(IOException cause) {
  44. logger.warning("we have some problems: " + cause.getMessage());
  45. }
  46. }
  47. }
  48. public synchronized void stop() {
  49. doLoop = false;
  50. notifyAll();
  51. }
  52. }