Zombies
Zombies

Reputation: 25912

Can I set a timeout for a InputStream's read() function?

I have a DataInputStream that I obtained from a Socket. Is there any way I can set a timeout for dis.read(...)? Currently I spawn a new thread to do the read. While the parent thread does a thread.join(timeout) to wait before interrupting it. I am aware of nio, but I don't think I want to refactor that much at this point. Thanks.

Upvotes: 7

Views: 16417

Answers (1)

jarnbjo
jarnbjo

Reputation: 34323

Not on the InputStream generally, but you can use Socket#setSoTimeout(int) to set a timeout for all read operations on the socket itself.

Upvotes: 15

Related Questions