Liason PC à appareil par ethernet!!

Signaler
Messages postés
96
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
24 octobre 2005
-
Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011
-
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

Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011

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
Messages postés
96
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
24 octobre 2005
4
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+
Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011

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
Messages postés
96
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
24 octobre 2005
4
ç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?
Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011

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