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

Entrée/Sortie Java Discussion :

Débutant Java, Sockets et observers


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut Débutant Java, Sockets et observers
    Bonjour à tous.

    Pour planter le décor, je viens tout juste de me mettre au développement JAVA. J'ai néanmoins une excellente connaissance du C++ en général et du framework Qt en particulier.

    J'aurais justement une question de débutant en JAVA: voilà, je voudrais implémenter une appli client/serveur en Java et j'ai commencé à regarder du côté de la classe Socket.

    Celle-ci m'interpelle un poil, car j'y ai bien retrouvé les méthodes (bloquantes et non bloquantes) pour lire et écrire sur une socket TCP mais je ne vois pas comment implémenter simplement un mécanisme de callback pour être prévenu lorsque de nouvelles données sont accessibles en lecture (ie. en tant que client, être prévenu lorsque le serveur m'a envoyé quelque chose).

    J'ai bien l'idée d'implémenter, à la mano, un thread séparé qui irait régulièrement voir si de nouvelles données sont accessibles et utiliser en parallèle un mécanisme d'observable/observer pour mon 'callback'.
    Mais je me demandais s'il n'y avait pas une façon plus simple (et déjà toute faite) pour exécuter une de mes fonctions quand de nouvelles données sont disponibles.

    Merci d'avance pour vos réponses à ma question que j'imagine bien bête et innocente

    EDIT: je viens de me rendre compte que j'aurais peut-être mieux fait de poster ma question dans le forum API / IO ... je n'ai pas l'impression de pouvoir déplacer mon post ... un modo pourra peut être le faire pour moi ?

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Tu fais un read (bloquant) sur l'entrée de ta socket client dans un thread séparé...

  3. #3
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    Salut, et tout d'abord merci pour ta réponse.

    Le thread supplémentaire avec le read bloquant me paraîssait justement un peu 'lourd' à mettre en oeuvre. C'est ce que j'ai tenté d'expliquer dans mon paragraphe commençant par "J'ai bien l'idée d'implémenter, à la mano, un thread séparé..."

    N'y aurait-t-il pas d'autre moyen plus léger ?

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par nouknouk
    Le thread supplémentaire avec le read bloquant me paraîssait justement un peu 'lourd' à mettre en oeuvre. C'est ce que j'ai tenté d'expliquer dans mon paragraphe commençant par "J'ai bien l'idée d'implémenter, à la mano, un thread séparé..."
    et cette phrase finissait par qui irait régulièrement voir si de nouvelles données sont accessibles et utiliser en parallèle un mécanisme d'observable/observer pour mon 'callback'.
    La méthode que je te propose ne va pas "régulièrement voir"... le read() est prévenu dès que quelque chose arrive...

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 361
    Par défaut
    Oui ça sera lourd, car un thread par client ...

    Utilise plutôt nio où tu n'auras besoin que d'un seul thread.
    Fais une recherche sur le forum, d'autres personnes on déjà poser des questions sur l'utilisation de cette api.

  6. #6
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    pour implanter un "callback" sur réseau ... essaye R.M.I ... c'est chic et élégant.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Euh ... Je ne vois pas le rapport avec RMI, là o_Ô Dans le style solution encore plus lourde, c'est fort, ça

Discussions similaires

  1. débutant JAVA+Eclipse
    Par ep31 dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 12/12/2005, 14h27
  2. [Net][Débutant(e)] socket c <-> socket java
    Par JulienT dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 25/11/2005, 16h46
  3. [Débutant][Java] Web Service
    Par ArseNic dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 14/11/2005, 11h09
  4. [Débutant] java.lang.object
    Par bonnefr dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 27/05/2004, 14h54
  5. [débutante][java]connection internet PPC\PC de bureau
    Par Emma20 dans le forum Développement
    Réponses: 2
    Dernier message: 19/05/2004, 14h01

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