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 :

lecture socket avec read une fois seulement


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Par défaut lecture socket avec read une fois seulement
    Bonjour,

    je ne sais pas si quelqu'un a deja eu ce probleme, mais dans mon aplli lorsque que je lis la socket via in.read(bytearr, off, len) ca fonctionne la premier fois mais a la prochaine fois ca ne marche plus, il trtourne toujours -1 alors qu'il devrait lire des donnees.

    peut etre un flush de in mais ca existe pas comme methode, ou bien reouvrire la socket dans la boucle.

    Quelqu'un a une idee ?

    Merci de votre aide.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Par défaut
    Quelqu'un a une idee le pourquoi le read lit une seul fois et apres il lit plus, il reste bloquee sur le in.read et renvoi toujours -1, alors qu'il y a des donnees a recuperer ?

    Ai-je oublie d'initialiser quelque chose ?

    Merci

  3. #3
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Salut,

    Sans bout de code on ne peut pas t'aider. Donne nous la partie du code qui envoi les données sur la socket et celle qui lit les données.

    A+
    Hydraland

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Par défaut
    je ne peux pas te donnee de bout de car ce qui envoi les donnees est des centaine de kilometre, c'est un boitier electronique, mais de toute facon le programme en c sous linux fonctionne tres bien , ca viens de la structure de mon prog en java

    j'aimerais a voir un exemple le plus simple possible d'un client serveur dans une boucle.


    - la boucle avec l'accept, ou mettre l'accept ?
    a l'interieur de la boucle ou pas ?
    les in et out inputstream faut-il les mettre en dehors de la boucle ou dans la boucle?
    faut-il les initialises a l'interieur de la boucle ?

    actuellement mon prrog a la structure suivante:

    Init du socket serveur

    While true

    accept du socket client

    lecture dess data avec read

    traitement des donnees

    envoi de packet

    retour boucle while true

    Merci.

  5. #5
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Un petit exemple incomplet d'un serveur qui tourne dans un Thread:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public final void run()
    	{
    		try
    		{
    			while(!serverThread.isInterrupted())//On test l'arrêt du serveur
    			{
    				Socket sock = socket.accept();//On a une nouvelle connexion
    				ServerConnector connector = new ServerConnector(sock.getInputStream(), sock.getOutputStream()); //ServerConnector est un Thread qui traite la demande
    				connector.start(); //On lance le Thread
    			}
    		}
    		catch (IOException ioe)
    		{
    			ioe.printStackTrace();
    		}
    	}
    Puisque c'est toi qui fait le serveur tu peux donc nous montrer ton code .

    A+
    Hydraland

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Par défaut
    oui mais en fait je fais le serveur mais le client aussi car je repond au requete du
    client , donc ca fait client aussi.

    mais je debute si je n'ai un une structure d'un minimum client serveur je vais pas m'en sortir, dans ton code tu gere ou les donnee cliente ?

    le in.read tu le met ou ?

    Merci.

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/11/2010, 16h07
  2. sa_handler une fois avec un & une fois sans ?!
    Par marion5515 dans le forum POSIX
    Réponses: 3
    Dernier message: 13/10/2009, 10h43
  3. Réponses: 5
    Dernier message: 25/11/2008, 10h41
  4. pb avec function une fois externalisée
    Par antrax2013 dans le forum ASP
    Réponses: 3
    Dernier message: 23/03/2006, 16h48

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