Bonjour,
j'essaye de développer un Quiz en Android, j'ai une partie serveur en java qui contient les questions/réponses et une partie client en java android, qui récupère les questions et les affichent puis renvoie la réponse au serveur. Or je n'arrive pas a envoyer de string du client vers le serveur.
serveur :
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 public class serveurtest { public static void main(String[] args){ // Scanner sc = new Scanner(System.in); int b = 0; ServerSocket socketserver; Socket socketduserveur ; BufferedReader in = null ; PrintWriter out; String rep; try { socketserver = new ServerSocket(2009); InetAddress address = InetAddress.getLocalHost(); String hostIP = address.getHostAddress() ; String hostName = address.getHostName(); System.out.println( "Le nom de serveur est : " + hostName + "\nIP: " + hostIP); System.out.println("Le serveur est à l'écoute du port "+socketserver.getLocalPort()); socketduserveur = socketserver.accept(); System.out.println("client connecté"); in = new BufferedReader(new InputStreamReader(socketduserveur.getInputStream())); out = new PrintWriter(socketduserveur.getOutputStream()); out.println("Question"); out.flush(); out.println("rep1"); out.flush(); out.println("rep2"); out.flush(); out.println("rep3"); out.flush(); out.println("rep4"); out.flush(); System.out.println(in.readLine()); } catch (Exception e) { e.printStackTrace(); System.out.println("erreur 1"); } } }
ConnectionActivity activité qui permet de rentrer l'adresse de connection :
connect : Thread qui gère la connection
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 public class ConnectionActivity extends Activity { private Button b = null; private EditText e = null; public String adresse; Thread t1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.connection); e = (EditText) findViewById(R.id.adresse); b = (Button) findViewById(R.id.boutonconnection); b.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { //on récupère l'adresse entrée par l'utilisateur adresse = e.getText().toString(); //on lance le thread qui permet connect t1 = new Thread(new connect(adresse)); t1.start(); //On lance l'activité QCM qui affiche les questions/réponses du serveur Intent intent = new Intent(ConnectionActivity.this, QCM.class); startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.connection, menu); return true; } }
et enfin qcm qui gère l'affichage des questions :
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 public class connect implements Runnable { private String adresse; public static ArrayList<String> ret = new ArrayList<String>(); public static PrintWriter out; public connect(String adresse){ this.adresse = adresse; } @Override public void run() { try { Socket socket = new Socket(adresse,2009); //adresse IP actuelle du serveur BufferedReader in = new BufferedReader (new InputStreamReader (socket.getInputStream())); out = new PrintWriter(socket.getOutputStream()); out.println("Connection établie"); //Cette string ne s'affiche pas sur le serveur, je ne comprends pas //On lit et stocke les strings questions et réponses du serveur for(int i = 0 ; i<5 ; i++){ ret.add(in.readLine()); } } catch (Exception ex) { Log.e("ConnectionTask","Failure !0",ex); } } }
Merci de votre aide
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 public class QCM extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.qcm); //On remplit les view par les questions réponses TextView tv = (TextView) findViewById(R.id.question_numero); tv.setText(connect.ret.get(0)); Button bt1 = (Button) findViewById(R.id.bt1); bt1.setText(connect.ret.get(1)); Button bt2 = (Button) findViewById(R.id.bt2); bt2.setText(connect.ret.get(2)); Button bt3 = (Button) findViewById(R.id.bt3); bt3.setText(connect.ret.get(3)); Button bt4 = (Button) findViewById(R.id.bt4); bt4.setText(connect.ret.get(4)); bt4.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { connect.out.println("TESTTEST"); } }); } }
Partager