Capturer des paquets depuis un serveur

jonathan100 Messages postés 39 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 3 juin 2003 - 7 févr. 2003 à 14:32
jonathan100 Messages postés 39 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 3 juin 2003 - 7 févr. 2003 à 16:56
Bonjour a tous,

Je cherche a capturer des paquets partant d'un serveur. J'ai donc creer une socket pour me connecter a celui-ci, et je souhaite donc tout d'abord capturer un paquet.

Voici mon code:


import .....

public class main
{
    int taille = 100;
    byte[] tableau;
    public static void main(String args[])
    {
        try
        {
        DatagramSocket un_socket = new DatagramSocket(8080);
        un_socket.connect(InetAddress.getByName("adresse"), 8080);
        JFrame ok = new JFrame("Voici l'adresse ou est connecte ma socket: "+un_socket.getInetAddress() + " puis verifie si elle est bien connectee: " + un_socket.isConnected() + " puis l'adresse SocketAddress du paquet: " );       
        ok.setVisible(true);
        appel();
        un_socket.disconnect();
        un_socket.close();
        }
        catch (Exception e)
        {
            JFrame erreur = new JFrame("Erreur procedure Socket!");
            erreur.setVisible(true);
        }

    } 
    
    public void appel()//capture un nouveau paquet, puis donne la SocketAddress de ce paquet
    {
        DatagramPacket mon_paquet = new DatagramPacket(tableau, taille);
        JFrame non = new JFrame("Adresse du paquet: " + mon_paquet.getSocketAddress());
        non.setVisible(true);
    }
}



Un message d'erreur m'indique que j'essaie d'appeler une methode d'instance depuis une methode statique, ce qui n'est pas possible.
Je suis debutant en Java, et je voulais savoir comment a partir de ce code je pouvais capturer mes paquets. Dois-je creer une classe "Paquet" et instancier a l'interieur un objet DatagramPacket?? Comment dois-je m'y prendre.

Merci d'avance a tous de votre aide. :)

2 réponses

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
7 févr. 2003 à 14:59
salut,

tout simplement :

une methode statique ne peut appeler que des methodes statiques !!

donc, soit tu met tes methodes en statique, soit tu met tes appels de méthodes dans une classe et tu instancie un objet de cette classe dans ton main.

par exemple :

import .....

public class main
{
public static void main(String args[])
{
GetPaquet getter = new GetPaquet();
} 

}

class GetPaquet
{
int taille = 100;
byte[] tableau;

public GetPaquet()
{
try
{
DatagramSocket un_socket = new DatagramSocket(8080);
un_socket.connect(InetAddress.getByName("adresse"), 8080);
JFrame ok = new JFrame("Voici l'adresse ou est connecte ma socket: "+un_socket.getInetAddress() + " puis verifie si elle est bien connectee: " + un_socket.isConnected() + " puis l'adresse SocketAddress du paquet: " ); 
ok.setVisible(true);
appel();
un_socket.disconnect();
un_socket.close();
}
catch (Exception e)
{
JFrame erreur = new JFrame("Erreur procedure Socket!");
erreur.setVisible(true);
}

}

public void appel()//capture un nouveau paquet, puis donne la SocketAddress de ce paquet
{
DatagramPacket mon_paquet = new DatagramPacket(tableau, taille);
JFrame non = new JFrame("Adresse du paquet: " + mon_paquet.getSocketAddress());
non.setVisible(true);
}

}

0
jonathan100 Messages postés 39 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 3 juin 2003
7 févr. 2003 à 16:56
ok je vais regarder tout ca.

Merci de m'avoir repondu ;)
0
Rejoignez-nous