2011-01-03 8 views
0

Je crée une application Android. Il nécessite une connexion de socket TCP pour envoyer des données à l'autre périphérique.Connexion refusée - socket

Tout fonctionne correctement pour le premier transfert. Toutefois, lorsque je le connecte la deuxième fois, il est dit que la connexion a été refusée par l'hôte ou qu'une erreur de liaison s'est produite.

J'ai fait toutes les choses possibles pour résoudre cette erreur de liaison et la connexion a été refusée. Je ferme à la fois la lecture et l'écriture fin une fois le transfert terminé, définir l'option de socket pour réutiliser l'adresse, option persistante.

Ces choses fonctionnent très bien lorsque je quitte complètement l'application et que je l'ouvre à nouveau, mais cela ne fonctionne pas lorsque j'essaie d'ouvrir la connexion sans quitter. Veuillez nous aider à comprendre si le problème est lié aux sockets ou à l'application, et si vous avez des idées sur la façon dont cela pourrait être résolu?

+0

Avez-vous du code qui pourrait nous aider à isoler le problème? – sahhhm

+0

Etes-vous sûr que cette connexion du côté serveur est également correctement fermée avant de la connecter deuxième fois – ingsaurabh

+1

désolé .. je ne suis pas autorisé à partager le code ... J'ai vérifié si toutes les connexions sont fermées ... tout est parfaitement fermé. .. – Indhu

Répondre

0

Examinez la sortie de netstat -a après avoir fermé le socket côté serveur et avant de réessayer. Si votre paire ipaddress/port est toujours dans un état autre que, je pense TIME_WAIT, vous ne pourrez pas vous reconnecter. Le côté serveur (celui qui appelle accept) est probablement le coupable, mais je vérifierais les deux maintenant que vous voyez quelque chose de mal.