Plop à tous
Alors voilà, je cherche à établir un serveur monothread sur ma machine grâce aux (Server)SocketChannels. Sauf que, lorsque je bind le ServerSocketChannel instancié, le débogueur m'insulte... assez inintelligiblement.Voici la ligne du bind, précédée de la récupération de mon IPv4 Internet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 java.net.BindException: Cannot assign requested address: bind at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Unknown Source) at sun.nio.ch.Net.bind(Unknown Source) at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source) at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source) at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source) at net.evenkoryis.technics.ServThread.<init>(ServThread.java:31) at net.evenkoryis.technics.MpServ.<init>(MpServ.java:6) at net.evenkoryis.main.Main.mpMenu(Main.java:88) at net.evenkoryis.main.Main.mainMenu(Main.java:46) at net.evenkoryis.main.Main.main(Main.java:12)Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Socket s = new Socket("monip.org", 80); s.getOutputStream().write("GET / HTTP/1.1\nHost: monip.org\n\n".getBytes()); // Envoi de requête HTTP à www.monip.org byte[] b = new byte[2048]; int rc = s.getInputStream().read(b); s.close(); // Récupération des données et fermeture du Socket employé String straddr = new String(b, 0, rc).split("IP : ")[1].split("<br>")[0]; // straddr contient l'IP sous forme de chaîne de caractères this.sv.socket().bind(new InetSocketAddress(InetAddress.getByName(straddr), 32740)); // sv est un attribut ServerSocketChannel![]()
Partager