Bonjour,

Je débute sur Androïde et je bute sur mon premier problème. L'objectif de mon mini projet est d'envoyer des messages textes depuis mon portable HTC (le client) sur le PC (le serveur) en utilisant les sockets. J'utilise une connexion wifi en me servant du hotspot comme noeud central du réseau. Les adresses ip sont attribuées dynamiquement et les ping fonctionnent. Je n'ai pas de message d'erreur particulier mais rien n'est reçu sur le serveur.

Voici le code du serveur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public class Network  {	
 
	public static void main(String[] args) {
        TCPServer server = new TCPServer();
        server.start();	
	}	
}
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
 
import java.io.InputStream;
import java.io.OutputStream;
 
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
 
 
	public class TCPServer extends Thread {
 
		@Override 
		public void run() {		
			try {				
				ServerSocket s = new ServerSocket(8080,0,InetAddress.getLocalHost());
				Socket cli = s.accept();				
				byte[] b = new byte[512];
				int n;				
				InputStream is = cli.getInputStream();
				while((n=is.read(b))>0){
					// Log.d("TCPServer",new String(b));
					System.out.println("Connexion via le wifi ... " + new String(b));
					if(new String(b).contains("\r\n\r\n"))break;
					b = new byte[512];
				}				
				OutputStream os = cli.getOutputStream();				
				os.write("HTTP/0.9 200 OK\r\n\r\n <html><body>hello world</body></html>".getBytes());				
	        } catch (Exception e) { 
				e.printStackTrace();
	        } 			
		}
	}
Le client (Android sur portable HTC)

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
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class Network extends Activity implements OnClickListener {	
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);        
        ((Button)this.findViewById(R.id.bouton1)).setOnClickListener(this);
 
    }
    @Override
	public void onClick(View v) {
        TCPClient client = new TCPClient();
        client.start();		
	}	
}
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
 
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
 
 
public class TCPClient extends Thread {	
	private String remoteIP = "xxx.xxx.xxx.xxx";
 
	@Override 
	public void run() {
		try {
			Socket s = new Socket(this.remoteIP,8080);       	
			byte[] b = new byte[512];
			int n;
			if (s.isConnected()) {				
				OutputStream os = s.getOutputStream();
				os.write("GET / \r\n\r\n".getBytes());								
				InputStream is = s.getInputStream();
				while((n=is.read(b))>0){
					b = new byte[512];
				}
			}			
			s.close();
        } catch (Exception e) { 
			e.printStackTrace();
        } 	
	}
}
Merci d'avance pour votre aide.