Liason PC à appareil par ethernet!!

cs_kaliel Messages postés 96 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 24 octobre 2005 - 7 juin 2004 à 10:40
Egalon Messages postés 125 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011 - 10 juin 2004 à 09:50
bonjour!!

je voudrais communiquer avec un système à distance par liaison ethernet liaison entre PC et celui-ci uniquement, pas de liaison au réseau local pas d'autres systèmes reliés à celui-ci.
En fait j'utilisais la laison RS 232 du pc pour communiquer mais de moins en moins de PC l'ont en standard, donc possible utilisation de l'USB mais comme apparemment c'est pas gagné je voudrais utiliser l'éthernet mais pas en réseau juste 1poste à un autre.

Si quelqu'un peut m'aider car j'ai jamais utiliser ethernet et java je débute.

merci

5 réponses

Egalon Messages postés 125 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011
8 juin 2004 à 13:39
AAAAAAAAAAAAAH!!!!!!!!!
Enfin, quelqu'un que je peux aider.
Moi aussi je débute mais ca va, je galère pas trop.

Tu veux juste faire de la comm entre 2 PC???

Il te faut 2 cartes réseau , un cable ethernet CROISE. Tu mets des IP fixes sur les 2 machines. etc... (Si t'en veux plus, tu demandes...)

Ensuite d'installe le J2SDK sur un poste et tu fais un petit prog qui ressemble à ca, pour tester:


import java.io.* ;
import jbvm.ip2k.*;
import java.lang.*;
import java.util.*;
import java.net.*;

//====================================================
class EnvoiMsg extends java.lang.Thread
{
  private DatagramSocket socket;

  public LinkedList Liste;
  public final int port_source = 14574;
  public final int port_destination = 4500;

  InetAddress adresse=null;
  DatagramPacket packet;

//=======================
  public EnvoiMsg ()
    {
Liste = new LinkedList();
try{	socket = new DatagramSocket(port_source );
   	}catch (SocketException exc) {System.out.println("Module EnvoiMsg (RJ) DEFAILLANT (Socket)...");}
try{	adresse = InetAddress.getByName("Kartal");
}catch(UnknownHostException exc) {System.out.println("Module EnvoiMsg (RJ) DEFAILLANT (Inet Address error)");};

    }
//=======================
  public void run()
    {   
String ligne;
System.out.println("Module EnvoiMsg (RJ)...");
while (true)
{
    while (Liste.size()>0)
{
ligne = Liste.getFirst().toString();
//System.out.println("Essai envoi RJ ...");

try{	packet= new DatagramPacket( ligne.getBytes(),(ligne.getBytes()).length , adresse , port_destination);
socket.send(packet);
   }catch (IOException exc) {System.out.println("Module EnvoiMsg (RJ) DEFAILLANT (DatagramPacket)...");}
// ajouter assurance:
Liste.removeFirst();
try{ 	Thread.sleep(20);
   }catch (InterruptedException e){}
    }
} 
    }
}

//====================================================
class ReceptionMsg extends java.lang.Thread
{
  private DatagramSocket socket1;  
  public LinkedList Liste;
  public final int port_local = 4500;
  byte[] memoire = new byte[1500];
  DatagramPacket reception;

//======================= 
  public ReceptionMsg ()
    {	Liste = new LinkedList();
try{	socket1 = new DatagramSocket( port_local );
   }catch (SocketException exc) {System.out.println("Module ReceptionMsg (RJ) DEFAILLANT (Socket)...");}
reception = new DatagramPacket(memoire,memoire.length);
    }
//=======================
  public void run()
    { System.out.println("Module ReceptionMsg (RJ)...");
while (true)
{ 
try{socket1.receive(reception);
   }catch (IOException exc) {System.out.println("Module ReceptionMsg (RJ) DEFAILLANT (Recieve)...");}
Liste.addLast(new String(memoire));
}
    }
}

class RJtest
{  
public static void main(String argv[]) throws IOException
    { 

EnvoiMsg EmettreRJ = new EnvoiMsg ();
ReceptionMsg RecevoirRJ = new ReceptionMsg ();

RecevoirRJ.start();
EmettreRJ.start();

while(true)
{

if (RecevoirRJ.Liste.size() >0)
   {

EmettreRJ.Liste.addLast(RecevoirRJ.Liste.getFirst());
RecevoirRJ.Liste.removeFirst();

   }
}}
 

try{ 	Thread.sleep(10);
   }catch (InterruptedException e){}
}


Commence à comprendre à partir de la class RJtest. Puis tu regarde ce que ca fait dans les 2 autres classes. Ce sont des Threads qui servent à émettre et recevoir des datagrammes. Les listes sont des tampons d'émission et de réception.
Bref pour envoyer une trame tu mets une chaine de caractère String monstring dans:

EmettreRJ.Liste.addLast(....)

Le thread voit qu'il y a qq chose dans sa liste et essaie de l'envoyer.
A la fin, tu devrais deviner que ce programme ne fait que renvoyer ce qu'il à recu sur ethernet.

Voila j'espère que ça t'aideras.

Signé: Egalon qui comprend difficilement
0
cs_kaliel Messages postés 96 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 24 octobre 2005 4
9 juin 2004 à 09:17
merci d'avoir répondu à mon message je vais voir si ça marche.
par contre c'est quoi "import jbvm.ip2k.*;" je connais pas?

A+
0
Egalon Messages postés 125 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011
9 juin 2004 à 10:18
Ah oui c'est normal, c'est parce qu je travaille sur un module et non sur un PC.
C'est un package spécifique à mon truc, donc tu le vires, ca t'économiseras des erreurs.

Signé: Egalon qui comprend difficilement
0
cs_kaliel Messages postés 96 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 24 octobre 2005 4
9 juin 2004 à 12:24
ça me mets des erreurs!!

illegal start of type
try{ Thread.sleep(10);
^
expected
}catch (InterruptedException e){}
^
2 errors

c'est quoi le problème?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Egalon Messages postés 125 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011
10 juin 2004 à 09:50
Il doit manquer une incollade ou y en avoir une en trop.

Je dirais qu'il y en a 2 en trop juste au dessus de try{...
et qu'il en manque une tout à la fin.

Signé: Egalon qui comprend difficilement
0