Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
774 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [java]Erreur que j explique pas!![/java]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java]Erreur que j explique pas!![/java]

n°228622
KrzAramis
Help Me
Posté le 16-10-2002 à 12:09:40  profilanswer
 

Voila deux classes. une server l autre client.
le server compile sans erreurs mais ne "marche" pas.
Qd au client y des erreurs mais je ne vois comment les corriger.

Code :
  1. /*This Program implments Java sockets (TCP) for network connection and Transmissions */
  2. /* of data. It is a simple datag                    ram client. */
  3. /* Niko Migas 13 Oct 2002 */
  4. /* Libraries Needed */
  5. import java.io.*; /* Standard Library for Input/Output tasks */
  6. import java.net.*; /* Networking tasks library */
  7. /* Class declaration. Attention Java is Case Sensitive */
  8. public class Client
  9. {
  10. /* Program Core */
  11. public static void main (String[]args) throws IOException
  12. {
  13.   /* Variable Declaration. stdIn is to be modified by User */
  14.      BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
  15.      /* Variable Declaration. dgsocket will be the "socket used in this program" */
  16.      DatagramSocket dgsocket;
  17.      /* Varaible Declaration. "address" will contain the value of the server's address */
  18.      InetAddress address;
  19.      /* Variable Declaration. HostName contains the server's name on the network i.e C08-18 */
  20.      String HostName;
  21.      /* User input */
  22.      System.out.print("Please enter Host name: " );
  23.      HostName = sdtIn.readLine();
  24.      address = InetAddress.getByName(HostName);
  25.      dgsocket = new DatagramSocket();
  26.      /* Declaration of the DatagramPacket name */ /*???*/
  27.      DatagramPacket packet;
  28.      /* Vara5b3e Declaration. */
  29.      byte[]sendBuf = new byte[256];
  30.      /* "data send to the Server */
  31.      packet = new DatagramPacket(sendBuf,256);
  32.      /* Client enters in the wait state */
  33.      dgsocket.receive(packet);
  34.      /* Varialbe declaration. Variable to stock the server answer */
  35.      String rcvdMessage = new String(packet.getData(),0);
  36.      /* Feedback to the user */
  37.      System.out.println("Message recieved: "+ rcvdMessage);
  38. }
  39. }


Errors:
[quote]
> Executing: D:\Program Files\ConTEXT\ConExec.exe "D:\j2sdk1.4.0_02\bin\javac.exe" "Client.java" -deprecation
 
Client.java:29: cannot resolve symbol
symbol  : variable sdtIn  
location: class Client
     HostName = sdtIn.readLine();
                ^
Client.java:41: warning: String(byte[],int) in java.lang.String has been deprecated
     String rcvdMessage = new String(packet.getData(),0);
                          ^
1 error
1 warning
> Execution finished.
[\quote]
 

Code :
  1. /* Libraries Needed */
  2. import java.io.*; /* Standard Library for Input/Output tasks */
  3. import java.net.*; /* Networking tasks library */
  4. import java.util.*; /* */
  5. /* Class declaration. Attention Java is Case Sensitive */
  6. public class Server
  7. {
  8. public static void main(String[]args) throws IOException
  9. {
  10.  /* definition of the datagram socket's name */
  11.     DatagramSocket dgsocket;
  12.  /* Value modification */
  13.     dgsocket = new DatagramSocket(4445);
  14.  /* byte named buffer declarared as well as its size */
  15.     byte[]buffer = new byte[256];
  16.     /* declaration of the datagram packet's name and configuration */
  17.  DatagramPacket dgpacket = new DatagramPacket(buffer,buffer.length);
  18.  /* recieving state of the server */
  19.     dgsocket.receive(dgpacket);
  20.  /* declartion of the variable holding the the address and acquisition of it */ /*???*/
  21.     InetAddress address = dgpacket.getAddress();
  22.  /* Port number acquiered */
  23.     int port = dgpacket.getPort();
  24.  /* Constant string creation */
  25.     String dgString = "datagram server replays";
  26.  /* Buffer is modified */
  27.     buffer = dgString.getBytes();
  28.  /* modification og the packet */
  29.     dgpacket = new DatagramPacket(buffer,buffer.length,address,port);
  30.  /* The reply message is now contained in the packet */
  31.     dgsocket.send(dgpacket);
  32.     /* WHAT IS DG MEANING ????????????????? */
  33. }
  34. }


Message édité par KrzAramis le 16-10-2002 à 13:55:08

---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
mood
Publicité
Posté le 16-10-2002 à 12:09:40  profilanswer
 

n°228623
darklord
You're welcome
Posté le 16-10-2002 à 12:11:13  profilanswer
 

stdIn != sdtIn déjà  :sarcastic:


---------------
Just because you feel good does not make you right
n°228636
KrzAramis
Help Me
Posté le 16-10-2002 à 12:26:29  profilanswer
 

Thank you ! le Client founctionne maintenant.
Le server aussi.
 
Mais sur une seule machine. Qd je copie les fichiers sur une autre machine ca marche plus !
 
@+++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°228642
darklord
You're welcome
Posté le 16-10-2002 à 12:35:22  profilanswer
 

bin c'est normal tu démarres ton client pour qu'il se connecte sur localhost. Ca fonctionnerra de suite moins bien si ton serveur est sur une autre machine  :sarcastic:


---------------
Just because you feel good does not make you right
n°228673
KrzAramis
Help Me
Posté le 16-10-2002 à 13:38:08  profilanswer
 

ben justement c est le but du jeu!
 
une mqchine en Server l autre Client.
A moins que le prof se soit mal exprime! ( ces ecossais alors)
 
:)
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°228681
bobuse
Posté le 16-10-2002 à 13:49:07  profilanswer
 

KrzAramis a écrit a écrit :

ben justement c est le but du jeu!
 
une mqchine en Server l autre Client.
A moins que le prof se soit mal exprime! ( ces ecossais alors)
 
:)
 
@++




localhost=machine locale
donc ton client essaie de se connecter au serveur présent sur la meme machine. Si ton serveur est sur une autre machine, il faut renseigner l'adresse de cette machine au client (en lieu et place de "localhost" )

n°228684
darklord
You're welcome
Posté le 16-10-2002 à 13:50:46  profilanswer
 

KrzAramis a écrit a écrit :

ben justement c est le but du jeu!
 
une mqchine en Server l autre Client.
A moins que le prof se soit mal exprime! ( ces ecossais alors)
 
:)
 
@++




 
 :heink:  :(  :cry:  :gun:


---------------
Just because you feel good does not make you right
n°228689
KrzAramis
Help Me
Posté le 16-10-2002 à 13:54:18  profilanswer
 

:??:  
 
Attends une seconde dans le code y a pas de localhost. Mais juste HostName.
Et puis pkoi y aurai ouverture de socket et transmision d adresse si c etait pour se connecter a une machine locale??
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°228692
darklord
You're welcome
Posté le 16-10-2002 à 13:56:08  profilanswer
 

:heink: t'as édité ou bien je suis  vraiment trop crevé  :??:  
 
bref tu entres quoi comme hostname lorsque ton serveur est sur une autre machine ?


---------------
Just because you feel good does not make you right
n°228696
KrzAramis
Help Me
Posté le 16-10-2002 à 13:59:42  profilanswer
 

lorsque le client affiche "hostname" j entre le nom de la machine où le server est en marche !
 
Effet le code a ete donne par le prof.
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
mood
Publicité
Posté le 16-10-2002 à 13:59:42  profilanswer
 

n°228698
bobuse
Posté le 16-10-2002 à 14:01:25  profilanswer
 

KrzAramis a écrit a écrit :

 :??:  
 
Attends une seconde dans le code y a pas de localhost. Mais juste HostName.
Et puis pkoi y aurai ouverture de socket et transmision d adresse si c etait pour se connecter a une machine locale??
 
@++




ca aurait pu etre pour faire des tests ...

n°228701
darklord
You're welcome
Posté le 16-10-2002 à 14:02:54  profilanswer
 

KrzAramis a écrit a écrit :

lorsque le client affiche "hostname" j entre le nom de la machine où le server est en marche !




 
 
et c'est quoi le résultat au juste?


---------------
Just because you feel good does not make you right
n°228704
darklord
You're welcome
Posté le 16-10-2002 à 14:05:34  profilanswer
 

KrzAramis a écrit a écrit :

 :??:  
Et puis pkoi y aurai ouverture de socket et transmision d adresse si c etait pour se connecter a une machine locale??
 
@++




 
parce que tu crois que le protocole est différent parce que la machine source et la machine destination sont en réalité la même machine?
 
Ca n'a aucun sens. T'ouvre une socket sur le machine destination et si il y a un process qui écoute sur ce port là il accepte ou refuse la connection point barre. Que ce soit la même machine ou pas n'y change rien (si ce n'est le délai).
 
Tu voudrais que ca passe par où si c'était en local?


---------------
Just because you feel good does not make you right
n°228708
KrzAramis
Help Me
Posté le 16-10-2002 à 14:12:21  profilanswer
 

DarkLord a écrit a écrit :

 
et c'est quoi le résultat au juste?




 
eh bien quand le nom de l hote est correct et que le server tourne sur l hote. Le client affiche : Recieved Message :
 
Mais y a rien qui s affiche a cote de "recieved message".
Dans le meme temps la fenetre server se ferme.
 
J en conlcus que le server a recu la requet et a repondu. Par contre je ne comprends pas pkoi y a rein du cote client (meme si j ajoute System.out.flush() )
 
Voila .


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°228723
darklord
You're welcome
Posté le 16-10-2002 à 14:39:26  profilanswer
 

et en local ca marche?


---------------
Just because you feel good does not make you right
n°228726
KrzAramis
Help Me
Posté le 16-10-2002 à 14:43:49  profilanswer
 

Citation :


> Executing: D:\Program Files\ConTEXT\ConExec.exe "D:\j2sdk1.4.0_02\bin\java.exe" Server
 
java.net.BindException: Address already in use: Cannot bind
        at java.net.PlainDatagramSocketImpl.bind(Native Method)
        at java.net.DatagramSocket.bind(DatagramSocket.java:329)
        at java.net.DatagramSocket.<init>(DatagramSocket.java:178)
        at java.net.DatagramSocket.<init>(DatagramSocket.java:229)
        at java.net.DatagramSocket.<init>(DatagramSocket.java:202)
        at Server.main(Server.java:19)
Exception in thread "main"  
> Execution finished.


 
J ai oublie de faire qqc ?
 
ci dessus le message que je peux voir dans ma consol dos.
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°228730
benou
Posté le 16-10-2002 à 14:54:57  profilanswer
 

le port qu'utilise ton serveur est déjà utilisé

n°228733
KrzAramis
Help Me
Posté le 16-10-2002 à 15:11:41  profilanswer
 

comment je fais pour liberer cette address?
 
Ou alors y a qqc que je peux a la place?
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°228734
darklord
You're welcome
Posté le 16-10-2002 à 15:16:45  profilanswer
 

tu prennais quel port par curiosité?
 
prend 4012
 


---------------
Just because you feel good does not make you right
n°228736
KrzAramis
Help Me
Posté le 16-10-2002 à 15:21:08  profilanswer
 

pour le port j en ai pas la moindre idee.
cependant le chgt d adresse ne marche qu une seule fois.
est ce que je dois changer l adresse a chaque compilation?
 


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°228737
lorill
Posté le 16-10-2002 à 15:23:08  profilanswer
 

tiens, rapport au dernier commentaire du source, dg c'est pour datagramme.

n°228738
darklord
You're welcome
Posté le 16-10-2002 à 15:28:04  profilanswer
 

KrzAramis a écrit a écrit :

pour le port j en ai pas la moindre idee.
cependant le chgt d adresse ne marche qu une seule fois.
est ce que je dois changer l adresse a chaque compilation?
 
 




 
 :heink: t'es à la masse toi je crois ...
 
Est ce que tu ne serais pas en train de démarrer un serveur à chaque fois sans arreter le précédent (ce qui expliquerait pourquoi le port est occupé)


---------------
Just because you feel good does not make you right
n°228753
KrzAramis
Help Me
Posté le 16-10-2002 à 15:41:31  profilanswer
 

him disons que je fais trop de chose a la fois.
et que je pensais que le server s arreter lors de la fermeture de la fenetre.
je viens de faire ctrl alt suppr et peux voir qu il y a deux ou trois fois le meme process.
Si le prof m aide pas je peux pas deviner tout seul.
 
!!!
 
merci je m en vais tuer les vilains doublons (comme dans Perry Rodhan)
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java]Erreur que j explique pas!![/java]

 

Sujets relatifs
Pour ceux qui connaissent Kawa petit logiciel pour faire du java[Delphi] comprendre cette erreur ODBC
[Java] Resizer un JScrollPane ?Qq'un a dejà eu ce pb avec socket en Java ?
Les tours Hanoi en java en applet ... Aidez moi[c++] Erreur incomprehensible a la compilation: help me!
[C] Erreur lecture clavierSites sur Java en français...
[java] pb a la compilation[JAVA] Méthode pour tester si une variable est initialisée ?
Plus de sujets relatifs à : [java]Erreur que j explique pas!![/java]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR