Não é possível ler o número enviado com o DataOutputStream

este é o meu código do cliente

Random rand = new Random();
int  n = rand.nextInt(50) + 1;
DataInputStream dis = new DataInputStream(_socket.getInputStream());
DataOutputStream dos = new DataOutputStream(_socket.getOutputStream());
dos.writeInt(n);

e este é o código do servidor

try {
     DataInputStream dis = new DataInputStream(socket.getInputStream());
     BufferedReader input = new BufferedReader(new InputStreamReader(dis));  
     int fromClient = input.read();
     System.out.println(fromClient);
} catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
}

Mas eu não recebo nada do cliente, mesmo que eu o leia assim

System.out.println(fromClient+"test");

eu não tenho resultado

questionAnswers(2)

yourAnswerToTheQuestion