J'avais plus de temps pour terminer mon PFE![]()
J'ai un problème d'envoi et de réception des messages entre le client et le serveur.
J'ai développé un client en java (Android) et un serveur en C++ (QT). le client arrive à se connecter au serveur , et même à envoyer des socket. le serveur peux recevoir mes socket mais lorsque il m’envoie une réponse soit elle arrive en caractères bizarres soit elle n'arrive que lorsque le serveur se déconnecte, et une socket "null" arrive avec.
J'arrive pas a comprendre le problèmevoici le code soit du coté client soit du coté serveur.
Merci
+
+
+
=======================> Pour le CLIENT:
+
+
Lignes de code de connexion au SERVEUR:
__________________________________________________________________________________________________
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 try { MyService.serverIpAddress = "10.0.2.2"; InetAddress serverAddr = InetAddress.getByName(MyService.serverIpAddress); MyService.socket = new Socket(serverAddr, 10100); } catch (UnknownHostException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); }
Lignes de code d'envoi de la Socket :
_____________________________________________________________________________
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 try { PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(MyService.socket.getOutputStream())), true); out.println(email+" "+password); Log.d("Client", "Client sent message"); btnLogin.setEnabled(false); inputEmail.setEnabled(false); inputPassword.setEnabled(false); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }
Lignes de code de reception :
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 BufferedReader in = null; try { in = new BufferedReader(new InputStreamReader(MyService.socket.getInputStream())); } catch (IOException e) { e.printStackTrace(); } while(true) { String msg=null; try { msg = in.readLine(); Log.d("","MSGGG: "+ msg); identificateuruni = msg; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
=====================> Pour le 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
47
48
49
50
51
52
53
54
55
56 //Méthode d'envoi de sms void FenServeur::envoyerSms(const QString &message, QTcpSocket *client) { QByteArray packet; QDataStream out(&packet, QIODevice::WriteOnly); out << (quint16)0; out << message; out.device()->seek(0); out << (quint16)(packet.size() - sizeof(quint16)); client->write(packet); } //Méthode de reception de sms void FenServeur::recevoirSms() { QTcpSocket *socket = qobject_cast<QTcpSocket *>(sender()); if (socket == 0) { qDebug() << "Pas de client à l'origine du signal"; return; } QDataStream in(socket); QString message; message=socket->readAll(); socket->flush(); qDebug() << "Message reçu: " << message; envoyerSms(message, socket); }
Partager