Partage
  • Partager sur Facebook
  • Partager sur Twitter

SOS porgrammatoin socket

    21 décembre 2009 à 12:15:48

    bonjour a tous,
    comment est ce que je dois faire pour que mon serveur n'arret pas a trouner et attends des connextion de la part des client meme si il n'ya pas des client a se connecter sur serveur j'aimrais qu'il n'arrete pas a trouner
    voila mon code de serveur

    merci

    Citation

    import java.io.*;
    import java.net.*;
    import java.util.*;

    public class EchoServer
    {

    public static void main(String[] args)

    {
    while(true){
    try
    {
    // server socket is not a Socket
    ServerSocket svrs = new ServerSocket(8189);
    // wait for client connection
    Socket s = svrs.accept();
    try
    {

    InputStream inStream = s.getInputStream();
    OutputStream outStream = s.getOutputStream();

    /**
    * Once the client is connected to the server, to make sure that the connection is well established
    * the Server sents a message of confirmation to the client"Hello you are connected to the Server"
    */

    Scanner in = new Scanner(inStream);
    PrintWriter out = new PrintWriter(outStream, true /* autoFlush */);

    String serverMove=getServerMove();
    out.println(serverMove);

    //out.println("Hello! You are connected to the Server");

    String name = in.nextLine();
    System.out.println(name);

    String ClientMove = in.nextLine();
    System.out.println(ClientMove);

    String win=determineRoundWinner(ClientMove, serverMove);

    out.println(win);

    }


    finally
    {
    s.close();
    }
    }

    catch (IOException e)
    {
    e.printStackTrace();
    }
    break; }
    }
    static String getServerMove() {
    double compMoveInt;
    String compMove;

    // Generate a random move for the
    // computer.
    compMoveInt = Math.random();

    // Convert the random integer into a
    // string that represents the computer's
    // move.
    if(compMoveInt >= 0.0 && compMoveInt <= 0.33) {
    compMove = "stone";
    }
    else if (compMoveInt >= 0.3 && compMoveInt <= 0.6) {
    compMove = "paper";
    }
    else {
    compMove = "scissors";
    }

    return compMove;
    }
    /**
    * Compare the user's move to the computer's
    * move to determine the winner of this round.
    *
    * @param userMove the user's move.
    * @param compMove the computer's move.
    * @return 1 if the computer wins.
    * 0 if it is a tie.
    * -1 if the user wins.
    */
    static String determineRoundWinner(String ClientMove,
    String compMove) {
    String win = null;
    // Check for ties.
    if (compMove.equals(ClientMove)) {
    win="Draw";
    }

    // if it is not a tie check for all the ways the
    // computer can win.
    // Rock smashes scissors...
    else if (compMove.equals("stone") &&
    ClientMove.equals("scissors")) {
    win="Compuer Wins Better Luck Next Time :)";

    }
    // Paper covers rock...
    else if (compMove.equals("paper") &&
    ClientMove.equals("stone")) {
    win="Compuer Wins Better Luck Next Time :)";
    }
    // Scissors cut paper...
    else if (compMove.equals("scissors") &&
    ClientMove.equals("paper")) {
    win="Compuer Wins Better Luck Next Time :)";
    }
    // Its not a tie and the computer did not
    // win so the user must have won!
    else {
    win="You Win ";
    }

    return win;
    }


    }

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      21 décembre 2009 à 12:29:28

      while(true)

      donc il tourne tout le temps, quel est le problème?
      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2009 à 12:32:43

        non il ne troune pas tous le temps ca s'arrete qaund il le client n'est plus connecter
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          21 décembre 2009 à 14:02:56

          et ton code tu le comprends ou c'est un copier coller?
          • Partager sur Facebook
          • Partager sur Twitter
            21 décembre 2009 à 14:32:52

            je le compredre, c'est ma 1ere fois que je code un socket
            • Partager sur Facebook
            • Partager sur Twitter
              21 décembre 2009 à 15:47:13

              Il y a un "break" juste avant l'accolade fermante de la boucle.
              • Partager sur Facebook
              • Partager sur Twitter

              SOS porgrammatoin socket

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown