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 :

Flux de données par socket


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 14
    Par défaut Flux de données par socket
    Voila, je programme un chat, je voudrais envoyer mes flux de données en bytes pour une question de légerté.

    J'ai pensai créer des tableaux de bytes mais le problème c'est qu'a la réception coté serveur, mon inputstream ne détecte pas la fin du tableau, d'autant plus que les messages n'ont pas tous la même longueur.

    Quelqu'un a t-il une méthode ? Merci

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Il y a 150 méthodes d'échanges de fichiers... peut être pourrais-tu les regarder ?... Avec ce que tu nous dis, il est difficile de te conseiller, car tu sembles croire que le problème est simple ? En tous les cas, la réponse directe à ta question est de te dire Eh bien ! Envoie simplement la longueur de ton tableau au serveur !

    ... ou d'utiliser FTP ? ou HTTP ? ou un paquetage de chat ?

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Quand il s'agit de communiquer par socket, j'aime bien aller voir du côté de l'API commons-net de Jakarta.

    Le code est robuste, et il y a déjà pas mal de choses déjà développées ce qui évite d'avoir à réinventer la roue.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  4. #4
    Membre éclairé Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Par défaut
    Salut,
    j'ai écrit quelque chose de trés légé et rapide qui permet d'écrire des entiers dans un tableau de bytes, en indiquant le nombre de bits utilisés.
    En gros si tu veux envoyer les entiers "3" et "2", tu enverras en binaire:
    "11"+"10"="1110".
    Ca permet de pratiquement rien gaspiller en bande passante. Tu peux aussi écrire des chaines de caracteres simples en 32bits (ou plus si tu veux).
    Je t'envois ça par mail si tu veux.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut probléme de réception d'un tableau de byte avec Socket
    pour envoyer un tableau de byte vers le serveur, j'ai envoyé la taille du tableau et puis le tableau mais a la reception et lorsque je vais recevoir mon tableau ca reste bloqué au niveau de la lecteur on dirait qu'il attend quelque chose.
    en fait il ya deux methode pour la lecture de ObjectInputstream il ya read(byte[]) et readFully(byte[]) qu'elle est la différence entre les deux?
    Merci de m'aider et de me donner si possible une methode qui fonctionne bien.

  6. #6
    Membre éclairé Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Par défaut
    je pense pas qu'il y ait une différence, c'est juste que read(byte[] buf,int off,int len) permet de choisir où tu veux placer les bytes lus dans buf.
    Si ça reste bloqué c'est juste que la taille attendue est supèrieure à la taille réellement envoyé. Tu as bien pris en compte ça aussi :
    j'ai envoyé la taille du tableau
    dans la taille ?

Discussions similaires

  1. (Client/Serveur)Lire flux données avec sockets
    Par tr.hedi dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 24/02/2013, 22h05
  2. réception de données par un socket
    Par devvanjier dans le forum Réseau
    Réponses: 3
    Dernier message: 04/06/2012, 12h59
  3. Serveur multithreads, envoie données par socket
    Par Orci76 dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 15/07/2010, 17h44
  4. Envoi donnes par socket
    Par astrotouf dans le forum Web & réseau
    Réponses: 4
    Dernier message: 09/04/2007, 20h06
  5. Rediriger un flux de données sous linux
    Par Nicaisse dans le forum POSIX
    Réponses: 7
    Dernier message: 01/07/2003, 16h04

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