25/04/10 16:07
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:
e questo è il client:
Avete qualche idea??
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:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package retemia; import com.sun.jmx.remote.internal.ClientCommunicatorAdmin; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * * @author paolo */ public class Server{ public static void main(String[] args) throws IOException{ Socket client=null; ServerSocket server= null; InputStream in; BufferedReader ind=null; OutputStream out=null; PrintStream p= null; DataOutputStream outd=null; try{ server= new ServerSocket(5155); while(true){ client=server.accept(); in= client.getInputStream(); out= client.getOutputStream(); ind= new BufferedReader(new InputStreamReader(in)); p= new PrintStream(out); outd= new DataOutputStream(out); String x=""; while((x=ind.readLine())!=null){ x=x.substring(2); p.println(x); System.out.println(x); } } }catch(IOException e){ System.err.print(e); } } }
e questo è il client:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package retemia; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.io.Writer; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.Socket; import retemia.Server; /** * * @author paolo */ public class Client { public static void main(String[] args) throws IOException{ InputStream in=null; Socket sock=null; OutputStream out=null; DataOutputStream outd=null; BufferedReader ind= null; try{ sock= new Socket("127.0.0.1", 5155); in= sock.getInputStream(); out= sock.getOutputStream(); outd= new DataOutputStream(out); ind= new BufferedReader(new InputStreamReader(in)); outd.writeUTF("ciao"); System.out.println("bububu"); String x=ind.readLine(); System.out.println("vafancul"); System.out.println(x); }catch(IOException e){ System.err.print(e); }finally{ if(sock!=null){ sock.close(); } } } }
Avete qualche idea??