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

Langage Java Discussion :

Problème application client/server, envoie et reception de bytes


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 30
    Par défaut Problème application client/server, envoie et reception de bytes
    Bonjour,

    je veux réaliser une application permettant l'échange de fichier entre client et server. Pour l'instant, mon application permet d'envoyer un fichier d'un client à un server, par contre avant l'envoi du fichier je veux envoyer une sorte de message pour dire au server de se préparé à la réception.
    Mon problème vient de la reception de celui-ci par le server.
    (Toute mes données sont envoyées en bytes)

    Client:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
    		Socket clientSocket = new Socket("localhost", 10001);
    		DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
    		BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
     
    		String action = inFromUser.readLine();
    		outToServer.writeBytes(action);
    Server :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private DataOutputStream sortie; // pour gestion du flux de sortie
    private InputStream entree; // pour gestion du flux d'entrée
    ...
    sortie = new DataOutputStream(sock.getOutputStream());
    entree = (sock.getInputStream());
    ...
    byte []buffer_action = new byte[1024];
    String mess;	   
    entree.read(buffer_action,0,buffer_action.length); 	
    mess = new String(buffer_action,0,buffer_action.length);
    System.out.println(mess);
    new ReceptFichier(nomfichier,sortie,entree); //recupération du fichier
    Si j'entre 15, l'affichage m'écrit un 1 avec plein de carrée à la suite ... et le 5 lui est envoyé dans mon fichier crée. Quelqu'un pourrait m'expliquer pourquoi je ne récupère pas 15 en entier ?
    (l'envoie du fichier marche très bien, c'est juste mon message qui rate...).

    Merci .

  2. #2
    Membre expérimenté Avatar de Amine_sas
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 245
    Par défaut
    Salut,

    Une idée est d'envoyer une ligne (une chaine se terminant par un retour à la ligne) et de la récupérer sur le serveur par la méthode readLine de BufferedReader.

    Client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     String action = inFromUser.readLine() + "\n";
              // Convertir la chaine en un flux d'octets
     outToServer.writeBytes(action.getBytes());
    Server:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));
     
    String line = br.readLine();

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 30
    Par défaut
    ah d'accord ! je ne savais pas qu'on pouvait ouvrir un autre flux inputstream pour la même socket ...
    Merci pour l'aide ! je vais essayer =)

Discussions similaires

  1. Verrouillage d’enregistrement dans une application Client/server
    Par touhami dans le forum Connexion aux bases de données
    Réponses: 13
    Dernier message: 07/07/2008, 22h05
  2. Application client-server qui se kille toute seule
    Par Coussati dans le forum Web & réseau
    Réponses: 7
    Dernier message: 21/01/2008, 02h34
  3. Deploiement d'Application Client/Server avec SQL Server
    Par Parrain dans le forum Bases de données
    Réponses: 17
    Dernier message: 24/04/2007, 14h09
  4. Application client server avec delphi
    Par Mus_mus dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/12/2006, 09h44

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