[JAVA] cannot find symbole [Résolu/Fermé]

Signaler
-
 john93 -
Bonjour,
Je suis ici car j'ai un petit souci au niveau de ma classe en java
quand je veu tester mon source il me dis cannot find symbole ou il y a le texte souligner dans le code suivant :

_______________________________________________________________________________________

package client_test;
import java.net.*;
import java.lang.*;
import java.net.InetAddress;

/**
*
* @author Propriétaire
*/
public class Com {

public InetAddress adresse;
public DatagramSocket socket;
public DatagramPacket packet;
public String requette, reponse;

public Com(){}

public void initCom(String str, int type)
{
if(type == 0)
adresse = new InetAddress.getByName(str);

socket = new DatagramSocket(11165);
}

public void sendCom(String str)
{
requette = str;
byte[] buffer = new byte[256];
buffer = requette.getBytes();
packet = new DatagramPacket(buffer,buffer.length,adresse,11165);
socket.send(packet);
}

public String recptCom(int type)
{
byte[] buffer = new byte[256];
packet = new DatagramPacket(buffer,buffer.length);
socket.receive(packet);

if(type == 1)
adresse = packet.getAddress();

reponse = new String(packet.getData());

return reponse;
}

public int cmpCom(String str1, String str2)
{
if(str1.compareTo(str2) == 0)
{
System.out.println(str2);
return 0;
}
else
{
System.out.println("les deux chaine sont differente");
return -1;
}
}

public void exitCom()
{
socket.close();
}

}
________________________________________________________________________________________

merci pour toute reponses.

4 réponses

Messages postés
29181
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
24 février 2020
6 778
Bizarre effectivement, d'autant plus que le package correspondant semble correctement inclu. D'après http://java.sun.com/j2se/1.4.2/docs/api/java/net/InetAddress.html :
static InetAddress 	getByName(String host)
          Determines the IP address of a host, given the host's name.

Je ne suis pas experte en java mais vérifie que ce n'est pas le static qui peut poser problème (a priori je ne vois pas trop pourquoi vu que tu appelles le constructeur par copie).

Bonne chance
Pour info je prog sur IDE 6.0.1 de chez NetBeans
Messages postés
29181
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
24 février 2020
6 778
Ton programme corrigé :
- pense à rattraper les exceptions.
- import java.lang.*; provoque une erreur de compilation
- pas de public devant class
package client_test;
import java.net.*;
//import java.lang.*; // ne peut pas être importé
import java.net.InetAddress;
import java.io.*; // pour les exceptions

/**
* @author Propriétaire
*/
class Com {

    public InetAddress adresse;
    public DatagramSocket socket;
    public DatagramPacket packet;
    public String requette, reponse;

    public Com(){}

    public void initCom(String str, int type){
        if(type == 0){
            try{
                adresse = InetAddress.getByName(str);
            }catch(UnknownHostException e){
                System.out.println(e.getMessage());
            }
        }
        try{
            socket = new DatagramSocket(11165);
        }catch(SocketException e){
            System.out.println(e.getMessage());
        }
    }

    public void sendCom(String str){
        requette = str;
        byte[] buffer = new byte[256];
        buffer = requette.getBytes();
        packet = new DatagramPacket(buffer,buffer.length,adresse,11165);
        try{
            socket.send(packet);
        }catch(IOException e){
            System.out.println(e.getMessage());
        }
    }

    public String recptCom(int type){
        byte[] buffer = new byte[256];
        packet = new DatagramPacket(buffer,buffer.length);
        try{
            socket.receive(packet);
        }catch(IOException e){
            System.out.println(e.getMessage());
        }
        if(type == 1)
            adresse = packet.getAddress();
        reponse = new String(packet.getData());
        return reponse;
    }

    public int cmpCom(String str1, String str2){
        if(str1.compareTo(str2) == 0){
            System.out.println(str2);
            return 0;
        }else{
            System.out.println("les deux chaines sont differentes");
            return -1;
        }
    }

    public void exitCom(){
        socket.close();
    }
}

Bonne chance
Merci pour l'aide normalement tout fonctionne bien.

Je voudrais savoir une chose, vu que je suis débutant et que les je connais pas encore très bien à quoi correspond
les Exception pourai-tu m'indiquer un site parlant de celle-ci stp.
Je retire mon ancien Topic je viens de regarder dans la documentation de "getByName" et je me suis rendu compte que les exceptions étaient écrite dedans.

Mais si je comprend bien celle-ci servent à gérer les erreurs ?
Messages postés
29181
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
24 février 2020
6 778
Oui une exception se déclenche quand un paramètre de fonction est invalide. Il faut alors la rattraper avec un bloc try catch pour rattraper l'erreur et faire un traitement particulier. En l'occurrence je me suis juste contentée d'afficher le message d'erreur.

Je t'invite à lire un tutoriel java pour plus de détails.

Bonne chance
Merci pour l'aide apporter je vais mettre se Topic comme étant résolu.