I have a thread that reads characters from a Buffered reader (created from a socket as follows):
inputStream = new BufferedReader(new InputStreamReader(clien
You have to create ServerSocket
That listen to client in every loop.
ServerSocket socket = new ServerSocket(3000);
Here is my run() method that will wait for client Socket
every time
public void run(){
boolean dataRecieved = false;
char[] inputChars = new char[1024];
int charsRead = 0;
while (!stopNow) {
try {
System.out.println("Listen To Clients:");
// The ServerSocket has to listen the client each time.
InputStreamReader isr = new InputStreamReader( socket.accept().getInputStream() );
inputStream = new BufferedReader( isr );
//Read 1024 characters. Note: This will pause the thread when stream is empty.
System.out.println("Reading from stream:");
if ((charsRead = inputStream.read(inputChars)) != -1)
{
System.out.println("Chars read from stream: " + charsRead);
System.out.println(inputChars);
System.out.flush();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
You have another minor mistake that halts the code and remove the line
charsRead = inputStream.read(inputChars); //<< THIS LINE IS PAUSING THE THREAD!>
Because this line is moved in an if
statement.