2014-09-17 2 views
0

J'ai un problème: J'ai un client Socket sur mon téléphone Android et un Java Socket Server sur mon PC. Serveur -> Android fonctionne parfaitement, mais Android -> Le serveur ne fonctionne pas.Socket Client Envoie rien

Ceci est mon Méthode d'envoi sur mon téléphone:

public void sendMessage(String cmd, String parameter) { 
     String msg; 
     if(!parameter.equals("")) 
      msg = cmd+";"+parameter; 
     else 
      msg = cmd+";null"; 

     Log.v(TAG,"Send: "+msg); 

     DataOutputStream bos; 
     try { 
      bos = new DataOutputStream(s.getOutputStream()); 
      bos.write(msg.getBytes("US_ASCII")); 
      bos.flush(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
} 

Et c'est la réception sur mon serveur:

@Override 
public void run() { 
    while (isRunning) { 
     try { 
      DataInputStream dis = new DataInputStream(s.getInputStream()); 
      String message = dis.readUTF(); 
      System.out.println("#"+this.ID+": Received: "+message); 
      obs.setID(ID); 
      obs.proceedMsg(message); 
     } catch (IOException ex) { 
      this.isRunning = false; 
      System.out.println("#"+this.ID+": Closed Instance"); 
     } 
    } 
} 

Quelqu'un at-il une idée? :)

Merci

+0

est-ce que vos données envoyées à partir de pc bien reçu dans le côté android? –

+0

oui, serveur -> Téléphone fonctionne bien – Chromo

Répondre

0

Vous devez utiliser writeUTF du côté client. Votre serveur attend de l'UTF lorsque vous utilisez la méthode readUTF. WriteUTF écrit au début 2 octets supplémentaires qui indiquent la longueur du bloc. Lorsque vous utilisez la méthode d'écriture simple, vous ne fournissez pas ces octets et c'est le problème.

+0

Merci c'est correct, je n'ai pas vu cette méthode dans le doku :) – Chromo