Partage
  • Partager sur Facebook
  • Partager sur Twitter

SystemTray et ServeurSocket

Sujet résolu
    15 mai 2009 à 11:59:47

    Bonjour à tous, j'utilise un SystemTray pour lancer un ServeurSocket.
    Mais voilà dès que j'ai lancé le Serveur je ne peux plus accèder au menu du SystemTray.

    Ici le listener sur mon MenuItem start, il fait appel à la méthode lancer.

    start.addActionListener(new ActionListener() {
    	public void actionPerformed(ActionEvent e) {
    		JOptionPane.showMessageDialog(null, "Lancement");
    			t.lancer();
    	}
    });
    


    Voilà le contenu de ma méthode lancer.

    try {
    		ss = new ServerSocket(1313, 5);
    		for (;;) {
    			sock = ss.accept();
    			mt = new Thread(this);
    			mt.start();
    		}
    	} catch (IOException exc) {}
    


    Je pense que le problème vient du ss.accept qui est "bloquant" mais je ne suis pas sûr et si c'est le cas
    je ne trouve pas comment contourner le problème.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      15 mai 2009 à 12:01:54

      lance ton ServerSocket dans un thread séparé, ça devrait permettre de faire autre chose en même temps. (mais pas sur j'ai jamais essayé de contourner une méthode bloquante).
      • Partager sur Facebook
      • Partager sur Twitter
        15 mai 2009 à 12:03:41

        Oui exactement. Les opérations I/O réseau ou non sont toutes bloquantes en java dans l'API standard, donc il faut les utiliser dans des threads séparés.
        • Partager sur Facebook
        • Partager sur Twitter
          15 mai 2009 à 12:05:32

          D'accord, je vais essayer ça et je vous dis ce que ça donne, merci

          edit (comme je peux pas reposter direct :p) : Ca marche niquel, merci à vous :)
          • Partager sur Facebook
          • Partager sur Twitter

          SystemTray et ServeurSocket

          × 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