Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.luxoft.bankapp.server;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.net.ServerSocket;
- import java.net.Socket;
- import com.luxoft.bankapp.exception.ClientExistsException;
- import com.luxoft.bankapp.model.Bank;
- import com.luxoft.bankapp.model.Client;
- import com.luxoft.bankapp.service.BankApplication;
- public class ServerThread implements Runnable {
- private ServerSocket socket;
- private Socket clientSocket;
- private ObjectOutputStream out;
- private ObjectInputStream in;
- ClientDAOImp cdi;
- BankOfficeDAOImp bdi;
- Bank ingBank = new Bank("ING");
- BankServerThreaded bst = new BankServerThreaded();
- public ServerThread(Socket clientSocket) {
- this.clientSocket = clientSocket;
- }
- public void run() {
- BankApplication bankApp = new BankApplication();
- for (Client c : bankApp.initialize().values()) {
- try {
- ingBank.addClient(c);
- } catch (ClientExistsException e) {
- e.printStackTrace();
- }
- }
- try {
- System.out.println("Server: Connected to "
- + clientSocket.getInetAddress().getHostName());
- out = new ObjectOutputStream(clientSocket.getOutputStream());
- in = new ObjectInputStream(clientSocket.getInputStream());
- out.flush();
- String serverMessage, userMessage;
- userMessage = (String) in.readObject();
- System.out.println("Server: User Type :" + userMessage.toString());
- if (userMessage.toString().equalsIgnoreCase("Client")) { //Client User logic
- cdi = new ClientDAOImp(ingBank);
- serverMessage = cdi.execute(userMessage);
- out.writeObject(serverMessage);
- while (userMessage != null
- && !(userMessage.toString().equalsIgnoreCase("exit"))) {
- userMessage = (String) in.readObject();
- System.out.println("Client: " + userMessage.toString());
- out.writeObject(cdi.execute(userMessage.toString()));
- out.flush();
- }
- } else if (userMessage.toString().equalsIgnoreCase("Office")) { //Office User logic
- bdi = new BankOfficeDAOImp(ingBank);
- serverMessage = bdi.execute(userMessage);
- out.writeObject(serverMessage);
- out.flush();
- while (userMessage != null
- && !(userMessage.toString().equalsIgnoreCase("exit"))) {
- userMessage = (String) in.readObject();
- System.out.println("Office: " + userMessage.toString());
- out.writeObject(bdi.execute(userMessage.toString()));
- out.flush();
- }
- } else {
- System.out.println("Unknown user");
- }
- bst.getClientCounter().getAndDecrement(); //Decrementing Client counter after disconnect
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } finally {
- try {
- out.close();
- in.close();
- socket.close();
- System.out.println("Connections closed");
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement