IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Socket et ServerSocket


Sujet :

API standards et tierces Java

  1. #1
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut Socket et ServerSocket
    Salut a tous. Je fais une application Client-serveur, et donc j'utilise les sockets et servers sockets. Pour simplifier les communications et la "reconnnaissance" des clients, j'ai créer une class SimpleSocket qui étend Socket. Du côté serveur, j'ai une class SimpleServer qui implement Runnable et qui créer un serverSocket. J'aimerai pouvoir créer un instance de mon SimpleSocket, grâce au Socket reçu de la methode accept() de mon serversocket. Or je ne vois pas du tout comment faire, car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SimpleSocket sock = server.accept();
    ne fonctionne pas, naturellement. J'ai pensé a créer un constructeur SimpleSocket telle que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public SimpleSocket(Socket s) {
                           super(s.getInetAdress(), 666);
              }
    Mais cela créer une deuxieme connection, ce que je ne veux pas.
    Y'aurait il une manière donc, d'obtenir une instance de SimpleSocket sans recréer une socket ,seuleument grace a la methode accept() ?
    Merci !

  2. #2
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Simple question, ta classe "SimpleSocket" qu'est-ce qu'elle possède de plus que la classe de base ?
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  3. #3
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Eh bin elle déclare deux variables : un nom de type String, et un numero d'identification de type int, plus les methodes get/set qui vont avec.
    La raison d'être de cette classe ne tiens qu'a ça .

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Pour moi ça ne sert à rien d'étendre la classe socket...

    Tu ne souhaite pas modifier le comportement par défaut d'une socket non? Tu désire seulement en utiliser une --> composition

    Pour les différencier les unes des autres, tu peux utiliser des Map et l'adresse IP ou un identifiant perso comme clé...


  5. #5
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Bin ouais en gros. Puisque je n'ajoute pas de methode spécial, juste des set/get pour utilisé les varibles. Dans ma classe qui utilise le serverSocket, j'ai un arraylist de tous les connectés, dois-je faire un autre arraylist pour contenir les noms egalement ?Tu me conseille quoi sinon?

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par GhostMaster
    Tu me conseille quoi sinon?
    une map.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Map<String, Socket> connected = new HashMap<String, Socket>();
    ou alors une Hashtable, qui est synchronisée

  7. #7
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Ok, parfait ça me convient ^^. Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ServerSocket ne communique pas avec une socket cliente
    Par jrem76 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 19/04/2013, 16h35
  2. Réponses: 4
    Dernier message: 18/02/2010, 16h31
  3. ServerSocket, socket cliente et acces par navigateur
    Par vincent62149 dans le forum Développement Web en Java
    Réponses: 6
    Dernier message: 22/01/2008, 14h55
  4. executer une application a distance : Sockets ? RPC ? CORBA?
    Par a_hic dans le forum Développement
    Réponses: 5
    Dernier message: 30/05/2006, 13h02
  5. [swing][socket]méthode ServerSocket.accept() bloquante?
    Par the_ugly dans le forum EDT/SwingWorker
    Réponses: 6
    Dernier message: 07/11/2005, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo