Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class TipoPersona {
- private String user;
- private String pass;
- private int punteggio;
- public TipoPersona(String u, String p, int pu) {
- user= u;
- pass= p;
- punteggio= pu;
- }
- public TipoPersona (String u, String p) {
- user= u;
- pass= p;
- }
- public String getUsername() {
- return this.user;
- }
- public String getPassword() {
- return this.pass;
- }
- public int getPunteggio() {
- return this.punteggio;
- }
- public void setPunteggioSeMaggiore(int p) {
- if ( p> punteggio)
- punteggio = p;
- }
- }
- import java.io.IOException;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.ArrayList;
- public class Server {
- private final static int PORT=3000;
- //private final static String address="localhost";
- private ServerSocket serversocket;
- private ArrayList <ClientConnection> connessioni;
- private ArrayList <TipoPersona> giocatori;
- public Server() {
- System.out.println("Server avviato");
- try
- {
- this.connessioni= new ArrayList <ClientConnection>();
- this.giocatori= new ArrayList <TipoPersona>();
- esegui();
- System.out.println("ei1");
- }
- catch(Exception e)
- {
- System.out.println("Exception: "+e);
- e.printStackTrace();
- }
- finally
- {
- // Always close it:
- try {
- serversocket.close();
- } catch(IOException e) {
- System.err.println("Socket not closed");
- }
- }
- }
- private void esegui() {
- ascolto();
- System.out.println("ei2");
- }
- private void ascolto() {
- try {
- System.out.println("ei3a");
- serversocket = new ServerSocket(PORT);
- System.out.println("ei3");
- while (true) {
- System.out.println("ei4");
- Socket socket = serversocket.accept();
- System.out.println("fatto");
- ClientConnection clientconnection = new ClientConnection (socket, giocatori);
- clientconnection.start();
- this.connessioni.add(clientconnection);
- System.out.println("Sto aggiungendo" + connessioni.size() + " elemento" );
- }
- }
- catch (Exception e) {
- System.out.println(e);
- try
- {
- serversocket.close();
- }
- catch(Exception ex)
- {}
- }
- }
- public ArrayList<ClientConnection> getConnessioni() {
- return connessioni;
- }
- public ArrayList<TipoPersona> getGiocatori() {
- return giocatori;
- }
- public static void main(String[] args) throws IOException, InterruptedException
- {
- new Server();
- }
- }
- import java.io.BufferedReader;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.Socket;
- import java.util.List;
- public class ClientConnection extends Thread {
- private List<TipoPersona> giocatori;
- private Socket socket;
- private BufferedReader reader;
- private DataOutputStream writer;
- private int id;
- public ClientConnection (Socket clientsocket, List<TipoPersona> giocatori) {
- this.giocatori = giocatori;
- this.socket= clientsocket;
- try {
- this.reader = new BufferedReader (new InputStreamReader (this.socket.getInputStream()));
- this.writer = new DataOutputStream (this.socket.getOutputStream());
- }catch (IOException e) {
- }
- }
- public String readLine() {
- String line = null;
- try {
- line = this.reader.readLine();
- }catch (IOException e) {
- }
- return line;
- }
- public void writeLine(String line) {
- try {
- this.writer.writeBytes(line + "\n");
- }
- catch(IOException e) {
- }
- }
- public void run() {
- try {
- login();
- gioca();
- chiudi();
- }
- catch(Exception e)
- {
- System.out.println("Exception: "+e);
- e.printStackTrace();
- }
- finally
- {
- // Always close it:
- try {
- socket.close();
- } catch(IOException e) {
- System.err.println("Socket not closed");
- }
- }
- }
- public void login() {
- System.out.println("eila");
- boolean loggato = false;
- while (!loggato) {
- readLine();
- //attenzione a inSocket = reader
- String username = readLine();
- System.out.println("username: " + username);
- id = 0;
- int i=0;
- boolean trovato = false;
- while(i< giocatori.size() && !trovato) {
- if (giocatori.get(i).getUsername().equals(username)==true)
- trovato = true;
- i++;
- }
- i--;
- if (trovato == true) {
- String password = readLine();
- if((giocatori.get(i).getPassword().equals(password))==true) {
- trovato=true;
- id = i;
- System.out.println("giocatore trovato");
- writeLine(Boolean.toString(trovato));
- loggato= true;
- }
- else
- writeLine(Boolean.toString(false));
- }
- else {
- String password = readLine();
- System.out.println("password: " + password);
- TipoPersona p = new TipoPersona(username, password,0);
- giocatori.add(p);
- id = giocatori.size()-1;
- trovato = true;
- System.out.println("Giocatore aggiunto");
- writeLine(Boolean.toString(trovato));
- loggato = true;
- }
- }
- }
- public void gioca() {
- System.out.println("mmm");
- while(true) {
- String scelta = readLine();
- System.out.println(scelta);
- if (scelta.equals( "partita" ) ) {
- partita();
- }
- else if(scelta.equals("record")) {
- System.out.println("sending records");
- vediRecord();
- }
- else {
- chiudi();
- break;
- }
- }
- }
- public void partita() {
- boolean continua = true;
- int i=0;
- while(continua == true) {
- i++;
- String sequenza=generaSequenza(i);
- System.out.println("Inviata a client la sequenza: "+sequenza);
- writeLine(sequenza);
- String seqricevuta= readLine();
- if (sequenza.equals(seqricevuta)) {
- writeLine("true");
- System.out.println("sequenza corretta");
- }
- else {
- writeLine("false");
- System.out.println("sequenza non corretta");
- i = i-1;
- giocatori.get(id).setPunteggioSeMaggiore(i);
- continua = false;
- }
- }
- }
- private String generaSequenza(int i)
- {
- String result=new String();
- for(int j=0;j<i;j++)
- {
- int num=(int)(Math.random()*10);
- if(num==10)
- num=0;
- result+=num;
- }
- return result;
- }
- public void vediRecord() {
- Integer ngioc = (giocatori.size());
- writeLine( ngioc.toString() );
- for (int i=0; i< giocatori.size(); i++) {
- String record = giocatori.get(i).getUsername();
- Integer punt = giocatori.get(i).getPunteggio();
- writeLine(record + punt);
- }
- }
- public void chiudi() {
- try
- {
- socket.close();
- }
- catch(Exception e)
- {
- System.out.println("Exception: "+e);
- e.printStackTrace();
- }
- finally
- {
- // Always close it:
- try
- {
- socket.close();
- }
- catch(IOException ex)
- {
- System.err.println("Socket not closed");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement