Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package battleship.server;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintStream;
- import java.net.Socket;
- public class ServerThread implements Runnable {
- private BattleshipServer server;
- private Socket socketOfClient;
- private BufferedReader reader;
- private PrintStream cout;
- private int actionID;
- private SQLConnection SQL = new SQLConnection();
- ServerThread(Socket client, int actionID, BattleshipServer server) throws IOException {
- this.server = server;
- this.socketOfClient = client;
- this.actionID = actionID;
- this.reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
- this.cout = new PrintStream(client.getOutputStream());
- }
- @Override
- public void run() {
- String clientmsg;
- clientmsg = getStringFromClient();
- System.out.print("Action(" + actionID + ") :" + clientmsg + "\n");
- operation(clientmsg);
- close();
- System.out.println("Action is over");
- }
- private void operation(String operation) {
- switch (operation) {
- case "registrar":
- registrar();
- break;
- case "logout":
- logout();
- break;
- case "login":
- login();
- break;
- case "findGame":
- findGame();
- break;
- case "setMyBoard":
- setMyBoard();
- break;
- case "resetPassword":
- resetPassword();
- break;
- default:
- setDataToClient("Not supported yet");
- System.out.println("error: the operation " + operation
- + "not supported yet");
- break;
- }
- }
- private void registrar() {
- String result = "";
- String ip = getStringFromClient().trim();
- String mac = getStringFromClient().trim();
- String name = getStringFromClient().trim();
- String mail = getStringFromClient().trim();
- String pass = getStringFromClient().trim();
- result = SQL.Register(ip, mac, name, mail, pass);
- setDataToClient(result);
- }
- private void logout() {
- String result = "";
- int ID = getIntFromClient();
- String ip = getStringFromClient().trim();
- String mac = getStringFromClient().trim();
- result = SQL.logout(ID, ip, mac);
- setDataToClient(result);
- }
- private void login() {
- String result = "";
- String mail = getStringFromClient().trim();
- String password = getStringFromClient().trim();
- String ip = getStringFromClient().trim();
- String mac = getStringFromClient().trim();
- result = SQL.login(mail, password, ip, mac);
- setDataToClient(result);
- }
- private void findGame() {
- String[] result = new String[2];
- int ID = getIntFromClient();
- result = SQL.findGame(ID);
- setDataToClient(result[0]);
- setDataToClient(result[1]);
- }
- private void setMyBoard() {
- String result = "";
- int userID = getIntFromClient();
- int gameID = getIntFromClient();
- String board = getStringFromClient();
- result = SQL.setBoard(userID, gameID, board);
- setDataToClient(result);
- }
- private void resetPassword() {
- String result = "";
- String mail = getStringFromClient();
- String ip = getStringFromClient();
- String mac = getStringFromClient();
- result = SQL.resetPassword(mail, ip, mac);
- if (result.length() != 5) {
- setDataToClient(result);
- } else {
- if (sendMail.sendEmailTo(mail, result)) {
- setDataToClient("1");
- } else {
- setDataToClient("-2");
- }
- }
- }
- private void close() {
- try {
- this.reader.close();
- this.cout.close();
- this.socketOfClient.close();
- server.closeClient();
- } catch (IOException ex) {
- System.out.println("Action(" + actionID + ") : error in close");
- System.out.println(" -> " + ex);
- }
- //System.exit(0);
- }
- private String getStringFromClient() {
- String str = "";
- try {
- str = reader.readLine();
- } catch (IOException ex) {
- str = "-1";
- close();
- System.out.println("Action(" + actionID + ") : error in gate String");
- }
- return str;
- }
- private int getIntFromClient() {
- int mag = 0;
- try {
- mag = Integer.parseInt(reader.readLine());
- } catch (IOException ex) {
- mag = -1;
- close();
- System.out.println("Action(" + actionID + ") : error in gate Int");
- }
- return mag;
- }
- private void setDataToClient(String str) {
- cout.println(str);
- cout.flush();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement