Bonjour,
Je tente d'écrire un tableau de byte dans une socket d'un serveur. Mais le code suivant me renvoie une exception systématique :
L'exception en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 try { int serverPort = config.getPort(); ServerSocketChannel serverSocketChannel = ServerSocketChannel.open(); ServerSocket server = serverSocketChannel.socket(); server.bind(new InetSocketAddress(serverPort)); final Socket socket = server.accept(); final DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); Thread thread = new Thread() { public void run() { try { while(true) { dos.write(new byte [] { 0, 0, 0, 64, 0, 50, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, -47, 32, -38, 71, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 35, 0, 0, 0, 105, -91, -85, 29, 0, 0, 48, 29, 64, 0, 0, 0, -128, -73, -44, -1 }); dos.flush(); Thread.sleep(50); } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }; thread.run(); } catch (IOException e) { e.printStackTrace(); }
J'ai beau chercher, je ne comprend vraiment pas.. Un byte est bien codé sur 8bits de -127 à 128 inclus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 java.io.IOException: Une connexion établie a été abandonnée par un logiciel de votre ordinateur hôte at sun.nio.ch.SocketDispatcher.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:33) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104) at sun.nio.ch.IOUtil.write(IOUtil.java:75) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334) at java.nio.channels.Channels.write(Channels.java:60) at java.nio.channels.Channels.access$000(Channels.java:47) at java.nio.channels.Channels$1.write(Channels.java:134) at java.io.DataOutputStream.write(DataOutputStream.java:90) at java.io.FilterOutputStream.write(FilterOutputStream.java:80)
J'ai tenté avec un tableau de byte contenant 2 zéro et idem, j'ai la même exception... Je dois passer à côté d'un truc mais je ne vois vraiment pas quoi..
Partager