Bonjour,
Je travaille sur un projet impliquant une communication socket.
Le but étant d'effectuer des actions sur mon téléphone depuis ma Raspberry Pi.
Je suis sur Android studio et mon téléphone est sur Android 5.1 Lolipop.
j'ai donc créé un serveur en python sur la Raspberry et essaye de faire un client sur Android.

la connexion fonctionne correctement, je peut aussi envoyer des Sockets de mon téléphone vers la Raspberry.
Cependant, lorsque j'essaye d'envoyer un socket du serveur vers le client, ça ne fonctionne pas.
le serveur envoie bien le socket, et du coté du client, je ne reçoit rien.
le programme se bloque a la ligne readLine();

sauriez-vous pourquoi ça fonctionne pas et pourriez vous m'aider?

MainActivity:
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
 
package com.example.justin.tests;
 
import android.app.Activity;
import android.os.Bundle;
 
public class MainActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
        Thread client = new Thread(new Client("192.168.42.65", 22000));
        client.start();
 
 
 
    }
}
Client:
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
 
package com.example.justin.tests;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketTimeoutException;
 
public class Client implements Runnable{
    private final String IP;
    private final int PORT;
    private Socket mySocket;
    int timeout = 10000;
    private String message = null;
    private PrintWriter out;
 
 
    public Client(String ip, int port){
        this.IP = ip;
        this.PORT = port;
    }
 
    public void run(){
        InetSocketAddress socketAdress = new InetSocketAddress(IP,PORT);
        try {
            mySocket = new Socket();
            mySocket.bind(null);
            mySocket.connect(socketAdress, timeout);
            mySocket.setSoTimeout(1);
            BufferedReader in = new BufferedReader(new InputStreamReader(mySocket.getInputStream()));
            out = new PrintWriter(mySocket.getOutputStream());
 
            out.print("tel");
            out.flush();
 
            while (message == null) {
                try {
                    message = in.readLine();
                    System.out.println(message);
                }catch (SocketTimeoutException e) {}
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}