Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
FVHTTP Server - ServerAscoltoThread.java

ServerAscoltoThread.java

Caricato da: Fraioveio
Scarica il programma completo

  1. package fvhttpserver;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintStream;
  5. import java.net.*;
  6.  
  7. public class ServerAscoltoThread extends Thread {
  8.     public ServerSocket ss;
  9.     private boolean esegui = true;
  10.    
  11.     public ServerAscoltoThread(int port) {
  12.         try {
  13.             ss = new ServerSocket(port);
  14.             System.out.println("Server creato.");
  15.         } catch (IOException ex) {
  16.             System.out.println(ex);
  17.         }
  18.     }
  19.    
  20.     @Override
  21.     public void run() {
  22.         Main.s.online();
  23.         System.out.println("Server online! (Port " + ss.getLocalPort() + ")");
  24.         while(esegui) {
  25.             try {
  26.                 Socket s = ss.accept();
  27.                 System.out.println("Connesso: " + s.getInetAddress().getHostAddress());
  28.                
  29.                 int i=0;
  30.                 boolean tr = false;
  31.                
  32.                 for(;i<Main.conn.length;i++) {
  33.                     if(Main.conn[i] == null || Main.conn[i].finish) {
  34.                         tr = true;
  35.                         break;
  36.                     }
  37.                 }
  38.                
  39.                 if(tr) {
  40.                     Main.conn[i] = new ClientConnection(s);
  41.                     Main.conn[i].start();
  42.                 } else {
  43.                     PrintStream out = new PrintStream(s.getOutputStream());
  44.                     out.println("HTTP/1.0 503 Service Unavailable");
  45.                     System.out.println("Server Overloaded");
  46.                 }
  47.             } catch (IOException ex) {
  48.                 if(esegui)
  49.                     System.out.println(ex.toString());
  50.             }
  51.         }
  52.        
  53.         Main.s.offline();
  54.     }
  55.    
  56.     public void stopServer() {
  57.         esegui = false;
  58.     }
  59. }