I am writing some networking code for an application. I setup a socket, then use its input and output streams to send and recieve messages from a server. The I am having is that whenever I read from the socket's input stream, it blocks (stops the program from continuing while it waits for input). In my application, messages must be able to be sent without delay but they cannot because the inputstream is still trying to read in information. Is there anyway around this?