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 :

Question sur Socket!


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Par défaut Question sur Socket!
    Bonjour,

    Voila mon problème : j'ai l'adresse ip d'un serveur et le bon numéro de port et c'est tout ce que je connais de ce serveur.
    J'aimerais savoir s'il est possible d'établir une communication avec ce serveur et avec une appli Java et ainsi échanger des segments TCP??

    En fait, j'ai un logiciel callpad qui se connecte à un serveur et qui récupère certaines informations. En regardant le traffic de ma carte réseau avec wireshark , j'aimerais savoir si je peux envoyer les mêmes messages que ce logiciel et ainsi récupérer ces mêmes informations!!

    J'ai déja fait quelques essais (pas très concluant) mais mon numéro d'acknowledge n'augmente pas, il reste à 1. Du coup, je ne vois pas les infos voulues.


    Merci pour vos réponses,

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Par défaut
    Salut,

    Je ne connais pas le logiciel dont tu parle, mais je peux te dire que si tu connais le protocole (ou que tu arrive a le comprendre grace a wireshark) tu pourra echanger des données en Java.

    Si tu as l'adresse IP et le port du serveur, il suffit de créer une socket avec ces paramètres.
    Regarde dans la .

    a+

  3. #3
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Par défaut suite...
    J'ai réussi à établir la communication avec le serveur et lui envoyer des messages!!
    Mias maintenant je ne vois pas très bien comment récupérer les infos que le serveur m'envoie. Sachant qu'il m'envoie du texte en XML.
    Voila mon bout de code:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    public class ManagerOpen {
     
            private BufferedReader istream = null;
     
            /** Creates a new instance of ManagerOpen */
            public ManagerOpen() {
     
                    Socket socket = null;
                    byte address[] = {(new Integer(XXX)).byteValue() ,(new Integer(XXX)).byteValue(),(new Integer(XXX)).byteValue(),(new Integer(XXX)).byteValue()};
                    InetAddress server;
     
                    try {
                            server = InetAddress.getByAddress(address);
                            socket = new Socket(server,1500);                        
     
                            //Flux entrants
                            InputStream in = socket.getInputStream();
                            InputStreamReader reader = new InputStreamReader(in);
                            istream = new BufferedReader(reader);
     
                            //Flux sortants
                            OutputStream out = socket.getOutputStream();
                            PrintStream ostream = new PrintStream(out);
     
                            //Demande de connexion
                            String cmd = "<Envelope><Header><property name=\"target\" value=\"XXXXXXX\" /></Header><Body><invoke iid=\"1\" service=\"AUTH_LOGIN\"><property value=\"XXX\" name=\"password\" /><property value=\"104\" name=\"login\" /><property value=\"simple\" name=\"scheme\" /><property value=\"immostoreipbx2\" name=\"domain\" /></invoke></Body></Envelope>";
                            ostream.println(cmd);
                            ostream.flush();
                            out.write(0);   //"." signifie que le message est terminé.
     
                            cmd = "<Envelope><Header /><Body><invoke iid=\"9\" service=\"DIRECTORY_LIST\"><property value=\"true\" name=\"monitor\" /></invoke></Body></Envelope>";                        ostream.println(cmd);
                            ostream.flush();
                            out.write(0);
     
                            boolean test=true;
                            while(test){
                                    int temp=istream.read();
                                    if(temp==0){
                                            test=false;
                                    }
                            }
                            System.out.println("pouetpouet:"+istream.ready());
     
                    } catch (UnknownHostException ex) {
                            ex.printStackTrace();
                            System.out.println("pouet1");
                    } catch (IOException ex) {
                            ex.printStackTrace();
                            System.out.println("pouet2");
                    } 
                    finally{try{
                            System.out.println("socket fermé!!");
                            socket.close();
                            System.out.println("pouetpouet:"+istream.ready());
                    } catch(IOException e){}}
            }
     
    }
    Merci de vos réponses!

    PS:dsl pour les pouets...

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Par défaut
    Salut,

    Tu récupère un InputStream de ton serveur, il faut que tu passe ce flux à un parseur XML (SAX ou DOM par exemple).

    a+

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

Discussions similaires

  1. questions sur socket
    Par mayu5 dans le forum Réseau
    Réponses: 3
    Dernier message: 17/04/2008, 11h19
  2. question sur socket.h linux
    Par doommick31 dans le forum Réseau
    Réponses: 8
    Dernier message: 25/05/2007, 08h11
  3. Questions sur les socket
    Par lapras123 dans le forum Réseau
    Réponses: 13
    Dernier message: 09/06/2006, 16h34
  4. Encore une petite question sur les sockets...
    Par damien99 dans le forum MFC
    Réponses: 4
    Dernier message: 15/02/2006, 14h22
  5. [WinSock] Question sur les sockets (accept)
    Par Grey dans le forum MFC
    Réponses: 3
    Dernier message: 09/01/2006, 11h37

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