2017-04-08 3 views
0

Je suis un peu désespérée. Je travaille sur une application censée visualiser les données de pollution. L'application se connecte au capteur via WiFi direct, le capteur est l'hôte du groupe. Ensuite, je suis censé me connecter au port 5001 et récupérer les données toutes les 2 minutes. Ces données sont supposées être envoyées à une activité google maps où elles seront visualisées dans un infowindow.Comment maintenez-vous la connexion TCP avec un serveur lorsque vous changez d'activité?

A ce moment, j'ai seulement pu créer une connexion TCP qui se ferme immédiatement, j'ai suivi ce Really simple TCP client.

Je dois donc établir une connexion TCP qui ne se ferme pas et qui s'exécute également lorsque je suis dans d'autres activités. Je n'ai pas besoin d'envoyer de messages, seulement récupérer des données.

J'ai regardé dans ce How to keep the android client connected to the server even on activity changes and send data to server? mais je ne comprenais pas comment je devais implémenter ce code pour mon cas.

Comment est-ce que tu fais ça? Appréciez toute aide.

Répondre

1

Votre application android est un client, chaque fois que vous avez besoin d'obtenir des données, vous pouvez le demander au serveur.

Si le serveur fonctionnant en mode de blocage, vous pouvez envoyer une demande au envoyé du serveur et de réponse du serveur via la connexion ouverte

Voici quelques exemples de connexion client/serveur avec Socket:

https://examples.javacodegeeks.com/android/core/socket-core/android-socket-example/

https://github.com/codepath/android_guides/wiki/Sending-and-Receiving-Data-with-Sockets

Vous trouverez d'autres exemples

En ce moment, je n'ai été en mesure de créer une connexion TCP qui ferme vers le bas immédiatement

Il repose sur la conception de votre serveur, application client envoie la demande au serveur et si le serveur renvoie la réponse vous pouvez l'obtenir, mais si le serveur a pas de réponse à l'envoi de votre connexion sera fermée

Je dois établir une connexion TCP qui ne se ferme pas et aussi fonctionne quand je suis dans d'autres activités. Je ne ai pas besoin d'envoyer des messages, récupérer uniquement les données

Voir les liens ci-dessus, il n'y a pas besoin de créer une connexion qui ne se ferme pas, vous devez envoyer votre demande et la réponse du serveur à chaque fois vous avez besoin

+0

Salut! Merci pour la réponse. Donc je n'ai pas du tout conçu le serveur. Auparavant, j'ai seulement créé le client TCP. C'est parce que le capteur agira en tant que serveur. Je suis seulement pour me connecter à un port et obtenir les données que le capteur envoie toutes les 2 minutes. Puis-je le faire avec le code ci-dessus que vous avez lié? Ou pensez-vous que mon ancien code pourrait même fonctionner? Celui du lien "Client TCP vraiment simple"? – Kspr

+0

Je ne suis pas censé envoyer des commandes au serveur, je vais simplement lire depuis le socket en continu. – Kspr