Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Problema Server/Client
Forum - Java - Problema Server/Client

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Salve a tutti ho un problema:
Ho creato due classi, un server e un client. In pratica io invio una stringa al server dal client e poi dovrei reinviarla al client, recuperarla e stamparla a video. Ora, se io invio la stringa al server e la stampo sul server dopo averla anche dopo averla reinviata al client tutto apposto, appena nel client inserisco il codice per recuperare la stringa dall'InputStrem si blocca tutto e non riesce neanche a leggerla dal server.

Questo è il codice delle due classi:

Codice sorgente - presumibilmente Java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5.  
  6. package retemia;
  7.  
  8. import com.sun.jmx.remote.internal.ClientCommunicatorAdmin;
  9. import java.io.BufferedReader;
  10. import java.io.DataInputStream;
  11. import java.io.DataOutputStream;
  12. import java.io.IOException;
  13. import java.io.InputStream;
  14. import java.io.InputStreamReader;
  15. import java.io.OutputStream;
  16. import java.io.PrintStream;
  17. import java.io.PrintWriter;
  18. import java.net.ServerSocket;
  19. import java.net.Socket;
  20.  
  21. /**
  22.  *
  23.  * @author paolo
  24.  */
  25. public class Server{
  26.  
  27.  
  28.     public static void main(String[] args) throws IOException{
  29.     Socket client=null;
  30.     ServerSocket server= null;
  31.     InputStream in;
  32.     BufferedReader ind=null;
  33.     OutputStream out=null;
  34.     PrintStream p= null;
  35.     DataOutputStream outd=null;
  36.     try{
  37.         server= new ServerSocket(5155);
  38.         while(true){
  39.             client=server.accept();
  40.             in= client.getInputStream();
  41.             out= client.getOutputStream();
  42.             ind= new BufferedReader(new InputStreamReader(in));
  43.             p= new PrintStream(out);
  44.             outd= new DataOutputStream(out);
  45.             String x="";
  46.             while((x=ind.readLine())!=null){
  47.                 x=x.substring(2);
  48.                 p.println(x);
  49.                 System.out.println(x);
  50.             }
  51.         }
  52.     }catch(IOException e){
  53.         System.err.print(e);
  54.     }
  55.  
  56.     }
  57.  
  58. }



e questo è il client:

Codice sorgente - presumibilmente Java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5.  
  6. package retemia;
  7.  
  8. import java.io.BufferedReader;
  9. import java.io.DataInputStream;
  10. import java.io.DataOutputStream;
  11. import java.io.File;
  12. import java.io.IOException;
  13. import java.io.InputStream;
  14. import java.io.InputStreamReader;
  15. import java.io.OutputStream;
  16. import java.io.PrintWriter;
  17. import java.io.Writer;
  18. import java.net.DatagramPacket;
  19. import java.net.DatagramSocket;
  20. import java.net.Socket;
  21. import retemia.Server;
  22.  
  23. /**
  24.  *
  25.  * @author paolo
  26.  */
  27. public class Client {
  28.     public static void main(String[] args) throws IOException{
  29.         InputStream in=null;
  30.         Socket sock=null;
  31.         OutputStream out=null;
  32.         DataOutputStream outd=null;
  33.         BufferedReader ind= null;
  34.         try{
  35.             sock= new Socket("127.0.0.1", 5155);
  36.             in= sock.getInputStream();
  37.             out= sock.getOutputStream();
  38.             outd= new DataOutputStream(out);
  39.             ind= new BufferedReader(new InputStreamReader(in));
  40.             outd.writeUTF("ciao");
  41.             System.out.println("bububu");
  42.             String x=ind.readLine();
  43.             System.out.println("vafancul");
  44.             System.out.println(x);
  45.         }catch(IOException e){
  46.             System.err.print(e);
  47.         }finally{
  48.             if(sock!=null){
  49.                 sock.close();
  50.             }
  51.         }
  52.     }
  53. }



Avete qualche idea??

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:08
Lunedì, 26/04/2010
Ho risolto utilizzando per la scrittura e la lettura PrintWriter e BufferedReader!

PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 18:30
Lunedì, 14/06/2010
Ciao..non ti conviene utilizzare PrintWriter perche genera dei problemi..ti consiglio di utilizzare la classe DataOutputStream per la scrittura dei dati sulla socket ..bye

PM Quote