Bonjour,
j'ai un bout de code qui me permet de recevoir des messages depuis un autre PC.
J'ai un souci de timeout...si je reçoit un premier message et le deuxième n'arrive pas mon pc attende plus que le timeout défini avant de donner une erreur. La plus part des fois quelque minuts, des fois plusieurs heures (9h)...
Voilà mon code dans les grand lignes:
Est-ce que readInt() tient compte du timeout du socket? Ou est-ce qu'il faut que j'en definisse un autre?
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 public void test() throws IOException{ final int TIMEOUT = 12 * 1000; // ms this.socket = new Socket(); socket.setSoTimeout(TIMEOUT); socket.connect(new InetSocketAddress(hostAddr, port), TIMEOUT); ..... InputStream in = socket.getInputStream(); DataInputStream din = new DataInputStream(in); MessageData data = new MessageData(); int length = din.readInt(); byte[] rawData = new byte[length]; din.readFully(rawData); ....
Si readInt() ne reçoit pas de messages, elle lêve bien l'exception IOException?
Partager