2014-06-25 3 views
0

J'essaye d'envoyer un message textuel simple à mon téléphone Android à partir de mon ordinateur. Le téléphone est sur le même réseau WiFi et j'utilise le tutorial here pour le serveur android. Lorsqu'il reçoit une connexion, je me connecte le message comme ceci:Serveur TCP Android

String read; 
Log.i("COB", "test log"); 
while((read = input.readLine()) != null) { 
    Log.i("COB", read); 
} 

Dans le logcat en studio Android, il me imprime la date et l'heure, mais pas le message, il semble:

06-25 09:55:12.213 9573-9648/cob.vivid.app I/COB﹕ test log 
06-25 09:55:12.213 9573-9648/cob.vivid.app I/COB﹕ [ 06-25 09:55:12.424 1025: 1079 D/WifiStateMachine ] 

Je suis en utilisant ncat pour Windows et je tape ce qui suit dans:

echo messageTest & echo. | ncat {IP ADDRESS} {PORT} 

Évidemment, j'utilise l'IP et le port réels.

Je sais que la connexion a fonctionné parce que dès que j'entre la commande ncat, elle imprime les journaux, mais je ne comprends pas pourquoi elle n'imprime pas le message aussi. Aussi, quel est le 1025: 1079?

Répondre

1

Vous devez envoyer un caractère EOL. Sans cela, la ligne n'est pas terminée et readLine ne la retournera pas.

En outre, vous jetez un oeil à NanoHTTPD qui est la mise en œuvre du serveur HTTP qui fonctionne bien sur Android et donc vous n'avez pas à faire tout le travail à partir de zéro.

+0

Merci! Quel personnage dois-je envoyer? Comme \ n ou quelque chose? Que dois-je mettre à la fin de la commande ncat? – Cobbles

+0

Vous utilisez 'readLine()'. Cette fonction lit le texte jusqu'au premier caractère de nouvelle ligne '" \ n "' rencontré. Vous devez donc envoyer un "\ n" 'à la fin de chaque' line'. Vous ne pouvez pas simplement taper cela car cela ne fonctionne que de cette façon quand vous l'ajoutez par programmation. Découvrez comment vous pouvez le saisir en tant que caractère spécial. Mais .... peut-être que c'est ajouté automatiquement. Je pense que oui ... Commencez juste à faire écho à quelques textes simples ... – greenapps

+0

Essayez de faire écho à un fichier texte avec quelques lignes. Et oui, c'est un personnage. –

0

Je l'ai corrigé par en supprimant le caractère EOL & echo.. Si quelqu'un pouvait expliquer cette solution, alors ce serait génial!