servidor que acepta varios clientes, no funciona

A continuación se muestra el código donde hay un servidor para aceptar múltiples conexiones de clientes y responder. El servidor puede recibir el mensaje del cliente pero el cliente no recibe los mensajes del servidor. He usado el concepto de subprocesamiento múltiple en el servidor. También observé que nada funciona (incluso una declaración println) más allá de la línea marcada con ####. Podría ser que el cliente está bloqueado ... ¿Alguna idea? código del servidor: public static void main (String argv []) lanza Exception {

     ServerSocket welcomeSocket = new ServerSocket(10000);

     while(true)
     {

        Socket connectionSocket = welcomeSocket.accept(); 

        Thread t = new Thread(new acceptconnection(connectionSocket));
        t.start();}}


   class acceptconnection implements Runnable{
            BufferedReader inFromClient,inn;
                DataOutputStream ds;
             Socket clientsocket;
        //constructor
        acceptconnection (Socket socket) throws IOException{
        this.clientsocket = socket;
        inn = new BufferedReader (new InputStreamReader(System.in));
        inFromClient =new BufferedReader(new  InputStreamReader(clientsocket.getInputStream()));
        ds = new DataOutputStream(clientsocket.getOutputStream());

         public void run (){
         try {
        String clientSentence, inp;
         while(( clientSentence = inFromClient.readLine())!=null)
         {
               System.out.println("from client" + clientSentence);
               ds.writeBytes("hi from server");**// THIS DOES NOT WORK**
         }

    }


  Client code:

     public static void main(String argv[]) throws Exception
   {

  Socket clientSocket;
   while(true)
  {
   // clientSock
    clientSocket = new Socket("localhost", 10000);
  BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));

  DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
  BufferedReader inFromServer = new BufferedReader(new    InputStreamReader(clientSocket.getInputStream()));

  System.out.println("Enter something:"); 
  sentence = inFromUser.readLine();  
  outToServer.writeBytes(sentence + '\n');// THIS WORKS - thats why server receives it

  **####** modifiedSentence = inFromServer.readLine();**// THIS DOES NOT WORK -client unable to receive** 

  System.out.println("FROM SERVER: " + modifiedSentence + "remote sock add: "+      clientSocket.getRemoteSocketAddress());
Respuesta 1

Mientras usa BufferedReader.readLine()en su cliente, asegúrese de usar un carácter de nueva línea cuando escriba datos:

ds.writeBytes("hi from server\n"); 

Y, como ya se dijo, recuerda enjuagar ...

ds.flush();
Respuesta: 2

public static class Builder <T extiende Builder <T>> {private int calorias = 0; public Builder () {} calorías públicas T (int val) {calorías = val; volver (T) ...

Soy nuevo en Java 8. Solo me pregunto cómo haría debajo de la operación usando flujos Java 8. Cualquier sugerencia public static void main (String [] args) {Integer [] arr1 = new Integer [] {1, 2, 3}; ...

primero, no estoy seguro de si esta pregunta pertenece aquí o en serverfault. Estoy usando IzPack para nuestro proyecto. Todo funciona bien en mi máquina local. Lamentablemente en mi jenkins tengo lo siguiente ...

Estoy tratando de descubrir cómo usar adecuadamente los espacios de nombres al crear una API pública a partir de un gran montón de código de implementación. Estoy escribiendo una API para poner una cara pública amigable en todo el código de mi ...