Guest User

TCPServer.java

a guest
Mar 6th, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.08 KB | None | 0 0
  1.  
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.DataOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.net.ServerSocket;
  8. import java.net.Socket;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11.  
  12. public class TCPServer {
  13.  
  14.     private static Thread threadClients;
  15.     private static Thread threadWriteToClients;
  16.     private static Thread threadServerCommands;
  17.     private static ServerSocket welcomeSocket;
  18.     private static List<Socket> clientsArray = new ArrayList<Socket>();
  19.     private static boolean go_on = true;
  20.     private static String sentence;
  21.     private static String serverCMD;
  22.     private static BufferedReader inFromClient;
  23.     private static Socket connectionSocket;
  24.     private static DataOutputStream outToClient;
  25.    
  26.      public static void main(String argv[]) throws Exception
  27.      {
  28.          System.out.println("starting main");        
  29.          welcomeSocket = new ServerSocket(9876);
  30.          System.out.println("Server socket klar");
  31.          
  32.        
  33.          
  34.          // Laver sockets til hver enkel Client (accepterer)
  35.          threadClients = new Thread(new Runnable() {
  36.                 public void run() {
  37.                     while(go_on) {
  38.                         try {
  39.                             connectionSocket = welcomeSocket.accept();
  40.                             inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
  41.                             clientsArray.add(connectionSocket);
  42.                         } catch (IOException e) {
  43.                             e.printStackTrace();
  44.                         }
  45.                     }
  46.                 }
  47.             });
  48.          threadClients.start();
  49.  
  50.      
  51.      
  52.       // Traad til at skrive til samtlige clients
  53.          threadWriteToClients = new Thread(new Runnable() {
  54.                 public void run() {
  55.                     while(go_on) {
  56.                         try {
  57.                             connectionSocket = welcomeSocket.accept();
  58.                             sentence = inFromClient.readLine();
  59.                             for (int i = 0; i < clientsArray.size(); i++) {
  60.                                 outToClient = new DataOutputStream(clientsArray.get(i).getOutputStream());
  61.                                 outToClient.writeBytes("FROM SOME CLIENT: " + sentence + "\n");    
  62.                             }                      
  63.                            
  64.                         } catch (Exception e) {
  65.                             e.printStackTrace();
  66.                         }
  67.                        
  68.                     }
  69.                 }
  70.             });
  71.          threadWriteToClients.start();
  72.          
  73.          
  74.          
  75.       // SERVER kommandoer (gaar ogsaa ud til clients)
  76.          threadServerCommands = new Thread(new Runnable() {
  77.                 public void run() {
  78.                     BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));  
  79.                     while(go_on) {
  80.                         try {
  81.                             serverCMD = inFromUser.readLine();
  82.                             for (int i = 0; i <= clientsArray.size(); i++) {
  83.                                 outToClient = new DataOutputStream(clientsArray.get(i).getOutputStream());
  84.                                 outToClient.writeBytes(serverCMD + "\n");  
  85.                             }  
  86.                            
  87.                             if (serverCMD.equals("quit")) {
  88.                                 go_on = false;
  89.                                 System.out.println("quitting the loop and closing the socket");
  90.                                 connectionSocket.close();
  91.                                 welcomeSocket.close();
  92.                             }
  93.                            
  94.                         } catch (IOException e) {
  95.                             e.printStackTrace();
  96.                         }
  97.                        
  98.                     }
  99.                 }
  100.             });
  101.          threadServerCommands.start();
  102.    
  103.        
  104.         }
  105.      
  106. }
Advertisement
Add Comment
Please, Sign In to add comment