L'envoi de données TCP à partir d'Android (comme client) - pas de données envoyées?
Je suis en train d'envoyer des données à partir de mon application Android pour mon PC sur TCP.
Le code est comme suit:
Socket socket = new Socket("10.0.78.75", 50505);
OutputStream out = socket.getOutputStream();
PrintWriter output = new PrintWriter(out);
mStatusText.setText("Sending Data to PC");
output.println("Hello from Android");
mStatusText.setText("Data sent to PC");
socket.close();
mStatusText.setText("Socket closed");
Je ne reçois pas toutes les erreurs à tous tout en faisant cela, cependant, le serveur d'application (écrit en C#) ne reçoit pas de données.
Il voit le client de se connecter à elle, et voit que les données sont envoyées, cependant, la chaîne de données est livré vide... Et de réflexions sur le pourquoi de ce qui se passe?
PS: Le code du serveur est copié à partir du site suivant et a été testé avec un C# client TCP.
http://www.switchonthecode.com/tutorials/csharp-tutorial-simple-threaded-tcp-server
Êtes-vous sur un appareil ou sur émulateur? avez-vous des autorisations internet dans votre manifeste?
OriginalL'auteur J J | 2011-06-10
Vous devez vous connecter pour publier un commentaire.
Essayer de mettre un
out.flush();out.close();
après laprintln(..)
;OriginalL'auteur Haphazard
J'ai eu le même problème et Anarchique de solutions n'était pas assez bon pour moi. Je pense que vous devez utiliser (dans ce cas)
output.flush();
etoutput.close();
au lieu deout.flush();
etout.close();
. Et vous devez vous rappeler au sujet de l'internet de l'autorisation enAndroidManifest.xml
:après
<uses-sdk>
et avant<application>
OriginalL'auteur CookieMonssster
Total suppose que cela, mais avez-vous essayé d'appeler
flush()
sur le flux de sortie avant la fermeture?OriginalL'auteur Trevor