2014-09-21 12 views
0

J'essaie de faire de mon téléphone Android un client sur un serveur que j'ai écrit en python. Le serveur fonctionne bien (je l'ai essayé) mais je n'arrive pas à connecter le téléphone au serveur. Ce est la fonction qui devrait créer la connexion:Connexion tcp Android du client

public String createConnection() throws IOException{ 
    InetAddress serverAddr = InetAddress.getByName(ipString); 
    clientSocket = new Socket(serverAddr, portNumber); 
    DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); 
    BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 
    outToServer.writeBytes(Client.INIT_HEY.name()); 
    String ans = inFromServer.readLine(); 
    return ans; 
} 

ipString est l'adresse IP du serveur reçu par l'utilisateur, portNumber est le numéro de port et ils sont tous les deux corrects. Lorsque j'essaie de me connecter au serveur, je reçois le message d'erreur "null".

Des pensées? Merci!

+0

Avez-vous inclus des autorisations Internet dans le manifeste? Je pourrais également recommander d'utiliser Volley. Une bonne intro: http://arnab.ch/blog/2013/08/asynchronous-http-requests-in-android-using-volley/ – VonSchnauzer

Répondre

0

Essayez-le sur le wifi. Si vous pouvez trouver l'adresse IP du téléphone, essayez de l'envoyer depuis votre système de développement. Si vous êtes sur le réseau cellulaire, essayez d'accéder au site Web à partir du navigateur, assurez-vous que la connexion réseau fonctionne.

0

L'erreur est parce que je courais une connexion tcp sur le thread principal .. Je aurais pu la réparer en faisant la classe un AsyncTask mais je préféré ajouter ceci:

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
StrictMode.setThreadPolicy(policy); 

Merci à tous!