IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java ME Discussion :

socket entre modem TC65 et pc via cable serie zen java ( J2ME )


Sujet :

Java ME

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Par défaut socket entre modem TC65 et pc via cable serie zen java ( J2ME )
    salut mon ami,
    s'il te plait aide moi, je develope une application embarquée en java sur un modem TC65 qui envoi et recoit des sms.
    je veux lire les sms puis les transmettre à mon pc via un cable serie.
    je veux effectuer le transfert avec des sockets , etant donné que le modem joue le role du client et que le pc est serveur.
    voici mon code :




    import com.siemens.icm.io.ATCommandFailedException;
    import com.siemens.icm.io.file.FileConnection;
    import java.io.IOException;
    import javax.microedition.io.Connector;
    import javax.microedition.midlet.MIDlet;
    import javax.microedition.midlet.MIDletStateChangeException;


    public class MainApplication extends MIDlet {

    SocketConnection sc = null;
    InputStream In = null;
    OutputStream Out = null;

    //Constructor
    public MainApplication()
    {
    }

    //Midlet start
    protected void startApp() throws MIDletStateChangeException
    {

    try
    {
    sc = (SocketConnection)
    Connector.open("socket://192.168.1.2:44567");
    //le probleme est ici je pense : adress ip non sure
    In = sc.openInputStream();
    Out = sc.openOutputStream();
    Out.write(contenuSms.getBytes());
    //contenuSms est un String

    In.close();
    Out.close();
    sc.close();
    }
    catch (Exception ex) {}
    }


    //Midlet Pause
    protected void pauseApp()
    {

    }
    //Midlet destroy
    protected void destroyApp(boolean arg0) throws MIDletStateChangeException
    {

    notifyDestroyed();
    }

    }

    //je suis pas sure de l'adresse ip de mon pc, pourtant c'est celle là qui existe dans mon reseau et que je peux pinger sur elle.
    j'ai déja écrit un prg serveur qui tourne parfaitement sur mon pc mais malheueusement le prb est dans le client.
    J'attend votre aide sur mon mail ou sur le forum.
    zaheni.anis@gmail.com
    merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Par défaut
    Salut,



    Et c'est quoi le problème ? T'as un message d'erreur particulier ?

    Tu peux vérifier que ton adresse IP serveur en bonne en écrivant un client "classique". V'là un code source client classique qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    import java.io.*;
    import java.net.*;
    import java.util.Date;
     
    public class Client {
    	   static final int port = 8888;
    	   static BufferedReader plec;
    	   static PrintWriter pred;
    	   static Socket socket;
    	   static String strReponse = "";
     
    	   public static void main(String[] args) throws Exception {
    		   try
    		   { 
    			   System.out.println("Début de traitement");
     
    			   // Connexion au serveur
    			   P_Login();
     
    			   // Envoi de 10 records
    			   //for (int i = 0; i < 2; i++) 
    			   P_SendOneRecord();
     
    			   // Logout
    			   P_Logout(false);
     
    			   System.out.println("Fin de traitement");
    		   }catch (Exception e) { 
    			   if (socket != null) P_Logout(true);
    			   e.printStackTrace();
    		   }
    	   }
     
    	   public static void P_Login() throws Exception{
    		   // Connexion au serveur
     
    		   socket = new Socket("192.168.1.18", port);
    	       System.out.println("SOCKET créé : " + socket);
     
    	       // Création des canaux de communication
    	       plec = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    	       pred = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
    	   }
     
     
     
    	   public static void P_SendOneRecord() throws Exception{
    		   String str = sendMessage("Data", true);
    		   if (!str.equals("ok")) P_Error(1);
    	   }
     
     
     
    	   public static void P_Error(int intCodeError) throws Exception{
    		   System.out.println("Erreur à traiter");
    		   switch (intCodeError)
    		   {
    			   case 1: throw new SendOneRecordException();
    			   default: throw new Exception();
    		   }
     
    	   }
     
    	   public static String sendMessage(String strMessage, boolean booResponse) throws Exception{
    		   System.out.println("Envoi du message : " + strMessage); 
    		   pred.println(strMessage);
    		   if (booResponse) strReponse = plec.readLine();
    		   System.out.println("Réception réponse : " + strReponse); 
    		   return strReponse;
    	   }
     
    	   public static void P_Logout(boolean booException) throws Exception{
    		   // Déconnexion au serveur
    		   plec.close();
    	       pred.close();
    	       socket.close();
    	   }
    }

    Sinon, v'là un source J2ME qui marche avec des sockets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    private SocketConnection objConnSocket;
    	private String strUrlSocket = "socket://192.168.1.18:8888";
    	private DataInputStream objInputSocket;
    	private DataOutputStream objOutputSocket;
     
    	public void P_Login() throws Exception{
    		//Connexion au serveur
    		objConnSocket = (SocketConnection)Connector.open(strUrlSocket);
    		objConnSocket.setSocketOption(SocketConnection.LINGER, 5);
     
    	    // Création des canaux de communication
    		objInputSocket = objConnSocket.openDataInputStream();
    	    objOutputSocket = objConnSocket.openDataOutputStream();
    	 }

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Par défaut Socket entre PC et Modem via cable série ?
    Le problème c'est que je veux effectuer une connexion entre le modem TC65 et le PC via une Socket à travers un cable série RS232( pas d'utilisation de GPRS ou CSD).
    Théoriquement ça doit marcher puisque lors du debougage, on a les System.out qui se redirigent vers le IDE de Netbens, et ceci est fait comme vous le savez via des socket UDP.

    Donc ma question est :
    Est il possible d'effectuer cette connexion via un câble série ?

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Par défaut REMARQUE :
    voici le message d'erreur qui s'affiche en utilisant ta source :

    java.io.IOException: Profile could not be activated
    -com.sun.midp.io.j2me.socket.Protocol.openPrim() , bci=94
    -javax.microedition.io.Connector..unknown. (),bci =240
    -javax.microedition.io.Connector.open(),bci =3
    -javax.microedition.io.Connector.open(),bci =3
    -javax.microedition.io.Connector.open(),bci =2

    Je rajoute que j'ai pas activé de profils GPRS ou CSD car mon but est d'envoyer des trames du modem vers le PC via Socket.
    merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/04/2012, 11h35
  2. Réponses: 0
    Dernier message: 20/04/2012, 16h35
  3. Réponses: 2
    Dernier message: 27/02/2007, 13h07
  4. prob de socket entre mysql et phpMyAdmin
    Par ratafia dans le forum Outils
    Réponses: 5
    Dernier message: 23/08/2006, 10h07
  5. Réponses: 3
    Dernier message: 30/03/2004, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo