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ème voici 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);
 
}