Bonjour,
Je souhaite envoyer une trame au serveur et celui-ci doit me répondre s'il s'agit d'une trame correcte.
Je ne sais pas trop comment m'y prendre... donc si vous pouviez me guider.
J'ai une classe ClientThread pour la communication :
Et ensuite l'endroit concerné ou j'attend la réponse :
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 public class ClientThread extends Thread{ private static final int SERVERPORT = 60115; private static final String SERVER_IP = "192.168.1.102"; private Socket socket; private PrintWriter mBufferOut; private BufferedReader mBufferIn; public String message; @Override public void run() { try { InetAddress serverAddr = InetAddress.getByName(SERVER_IP); socket = new Socket(serverAddr, SERVERPORT); mBufferOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); mBufferIn = new BufferedReader(new InputStreamReader(socket.getInputStream())); if( mBufferIn.readLine() != null) { message = mBufferIn.readLine(); } } catch (UnknownHostException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } } public void envoyer(String message) { mBufferOut.print(message); mBufferOut.flush(); } }
J'ai une variable message déclaré comme public et je vais la récupérer dans mon activité mais elle est null. Il me faudrait détecter à quel moment j'ai reçu une réponse mais je sais pas trop comment faire.
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 case R.id.buttonOK: ThreadLAN.envoyer("#"+password+"#"); password += ThreadLAN.message; /*if (ThreadLAN.message.length() <= 10) { password += ThreadLAN.message; }*/ Intent main = new Intent(login.this, MainActivity.class); main.putExtra(EXTRA_PASSWORD, password); startActivity(main); break; }
Merci pour votre aide.
Partager