Ok, donc je fais quelque chose qui semble être très facile. Essentiellement, j'essaie d'ouvrir une connexion ServerSocket, puis j'attends que le client se connecte.Comment ouvrir une ServerSocket dans mon application android?
Voici mon code.
ServerSocket serverSocket = new ServerSocket(6543);
Socket clientSocket = serverSocket.accept();
Chaque fois que mon frappe code, serverSocket.accept() ;, je lance l'exception suivante.
bind failed: EADDRINUSE (Address already in use)
Alors, évidemment, ma prochaine étape était de vérifier et de voir si un autre port fonctionnerait, mais ce n'était pas le cas. Ensuite, j'ai redémarré l'appareil et essayé d'exécuter l'application et j'ai eu la même exception. J'ai donné à mon application INTERNET la permission et l'appareil est enraciné.
Voici mes interfaces réseau qui apparaissent.
lo: ::1%1
lo: 127.0.0.1
eth0: //IPV6 address
eth0: 192.168.1.127
EDIT 1
Voici les informations d'objet serverSocket que je reçois lors du débogage.
ServerSocket[addr=192.168.1.121/192.168.1.121,port=0,localport=1234]
EDIT 2
Je les constructeurs disponibles ci-dessous dans mon ServerSocket
new ServerSocket(int port)
new ServerSocket(int port, int backlog)
new ServerSocket(int port, int backlog, InetAddress localAddress)
J'ai essayé d'utiliser le 3ème constructeur et même exception.
new ServerSocket(4567, 0, InetAddress.getLocalHost());
Bon, laissez-moi savoir comment ça se passe! –
Oui, je n'ai rien dans la documentation, j'ai aussi fait demi-tour et testé cela sur un téléphone et l'émulateur et j'ai reçu la même exception. – meanbunny
Si vous supprimez serverSocket.accept(), cela fonctionne-t-il? –