Advertisement
Guest User

Untitled

a guest
Dec 26th, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.87 KB | None | 0 0
  1. package com.luxoft.bankapp.server;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6. import java.net.ServerSocket;
  7. import java.net.Socket;
  8.  
  9. import com.luxoft.bankapp.exception.ClientExistsException;
  10. import com.luxoft.bankapp.model.Bank;
  11. import com.luxoft.bankapp.model.Client;
  12. import com.luxoft.bankapp.service.BankApplication;
  13.  
  14. public class ServerThread implements Runnable {
  15.     private ServerSocket socket;
  16.     private Socket clientSocket;
  17.     private ObjectOutputStream out;
  18.     private ObjectInputStream in;
  19.     ClientDAOImp cdi;
  20.     BankOfficeDAOImp bdi;
  21.     Bank ingBank = new Bank("ING");
  22.     BankServerThreaded bst = new BankServerThreaded();
  23.    
  24.     public ServerThread(Socket clientSocket) {
  25.         this.clientSocket = clientSocket;
  26.     }
  27.  
  28.     public void run() {
  29.  
  30.         BankApplication bankApp = new BankApplication();
  31.         for (Client c : bankApp.initialize().values()) {
  32.             try {
  33.                 ingBank.addClient(c);
  34.             } catch (ClientExistsException e) {
  35.                 e.printStackTrace();
  36.             }
  37.         }
  38.         try {
  39.             System.out.println("Server: Connected to "
  40.                     + clientSocket.getInetAddress().getHostName());
  41.             out = new ObjectOutputStream(clientSocket.getOutputStream());
  42.             in = new ObjectInputStream(clientSocket.getInputStream());
  43.             out.flush();
  44.  
  45.             String serverMessage, userMessage;
  46.             userMessage = (String) in.readObject();
  47.             System.out.println("Server: User Type :" + userMessage.toString());
  48.             if (userMessage.toString().equalsIgnoreCase("Client")) {    //Client User logic
  49.                 cdi = new ClientDAOImp(ingBank);
  50.                 serverMessage = cdi.execute(userMessage);
  51.                 out.writeObject(serverMessage);
  52.  
  53.                 while (userMessage != null
  54.                         && !(userMessage.toString().equalsIgnoreCase("exit"))) {
  55.                     userMessage = (String) in.readObject();
  56.                     System.out.println("Client: " + userMessage.toString());
  57.                     out.writeObject(cdi.execute(userMessage.toString()));
  58.                     out.flush();
  59.                 }
  60.             } else if (userMessage.toString().equalsIgnoreCase("Office")) { //Office User logic
  61.                 bdi = new BankOfficeDAOImp(ingBank);
  62.                 serverMessage = bdi.execute(userMessage);
  63.                 out.writeObject(serverMessage);
  64.                 out.flush();
  65.                 while (userMessage != null
  66.                         && !(userMessage.toString().equalsIgnoreCase("exit"))) {
  67.                     userMessage = (String) in.readObject();
  68.                     System.out.println("Office: " + userMessage.toString());
  69.                     out.writeObject(bdi.execute(userMessage.toString()));
  70.                     out.flush();
  71.                 }
  72.             } else {
  73.                 System.out.println("Unknown user");
  74.             }
  75.             bst.getClientCounter().getAndDecrement(); //Decrementing Client counter after disconnect
  76.         } catch (IOException e) {
  77.             e.printStackTrace();
  78.         } catch (ClassNotFoundException e) {
  79.             e.printStackTrace();
  80.         } finally {
  81.             try {
  82.                 out.close();
  83.                 in.close();
  84.                 socket.close();
  85.                 System.out.println("Connections closed");
  86.             } catch (IOException e) {
  87.                 e.printStackTrace();
  88.             }
  89.         }
  90.     }
  91.  
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement