Partage
  • Partager sur Facebook
  • Partager sur Twitter

Communication par Socket sous Android

    4 décembre 2018 à 18:51:25

    Voila : je suis entrain de programmer une application Androide qui a besoin de communiquer avec mon serveur , pour solution j'ais commencé a coder un Socket de communication. 

    Seulement voila je tombe  lorsque je tente d'envoyer un message (methode : Sendmessage) sur l'erreur : Networkonmainthreadexception

    Cependant je pense bien avoir créer mon Socket dans autre Thread et la réception de message fonctionne très bien

    Voici mon code

    Merci d'avance pour vos réponses ;)

    class ClientThread implements Runnable {

    private Socket socket;
    private BufferedReader input;
    Override
    public void run() {

    try {
    // InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
    socket = new Socket(SERVER_IP, SERVERPORT);


    while ((!Thread.currentThread().isInterrupted() )) {






    Log.i(TAG, "Waiting for message from server...");

    this.input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String message = input.readLine();
    Log.i(TAG, "Message received from the server : " + message);

    if (null == message || "Disconnect".contentEquals(message)) {
    Thread.interrupted();
    message = "Server Disconnected.";
    updateMessage(getTime() + " | Server : " + message);
    break;
    }

    updateMessage(getTime() + " | Server : " + message);

    }

    } catch (UnknownHostException e1) {
    e1.printStackTrace();
    } catch (IOException e1) {
    e1.printStackTrace();
    }

    }

    void sendMessage(String message) {


    try {
    PrintWriter out = new PrintWriter(new BufferedWriter(
    new OutputStreamWriter(socket.getOutputStream())),
    true);
    out.println("Hello Server ! ");
    out.flush();


    }catch (IOException e) {

    }


    }

    }

    String getTime() {
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    return sdf.format(new Date());
    }

    @Override
    protected void onDestroy() {
    super.onDestroy();
    if (null != clientThread) {
    clientThread.sendMessage("Disconnect");
    clientThread = null;
    }
    }

    -
    Edité par 0gst681 4 décembre 2018 à 18:52:35

    • Partager sur Facebook
    • Partager sur Twitter

    Communication par Socket sous Android

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown