2016-03-20 17 views
2

İki sınıf bir sunucu ve istemci oluşturdum, soket girişi ve çıkış akışı üzerinden veri gönderiyorum ancak birden fazla mesaj gönderemiyorum?Java Socket Data Gönderme

Sunucu: Ben sadece olduğu gibi değil emin Ancak yeni iletileri kontrol etmek için bir döngü olması gerekir çünkü sadece mesaj alındığında çıkışları

public class SOK_1_CLIENT { 

    public static void main(String[]args) throws Exception 
    { 
     SOK_1_CLIENT client = new SOK_1_CLIENT(); 
     client.run(); 
    } 

    private void run() throws Exception { 
     Socket SOCK = new Socket("localhost",444); 
     PrintStream ps = new PrintStream(SOCK.getOutputStream()); 
     ps.println("Hello to Server from client"); 

     InputStreamReader ir = new InputStreamReader(SOCK.getInputStream()); 
     BufferedReader br = new BufferedReader(ir); 

     String message = br.readLine(); 

     System.out.println(message); 

    } 

} 

ancak onun düşünüyorum

public class SOK_1_SERVER { 

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

     SOK_1_SERVER Sever = new SOK_1_SERVER(); 
     Sever.run(); 
    } 

    private void run() throws Exception { 
     ServerSocket SRVSOCK = new ServerSocket(444); 
     //Waits both client and server to accept and we return 
     //a socket 
     Socket SOCK = SRVSOCK.accept(); 
     //Once accepted 
     InputStreamReader isr = new InputStreamReader(SOCK.getInputStream()); 
     BufferedReader br = new BufferedReader(isr); 

     String message = br.readLine(); 
     System.out.println("I read: " + message + "from Client"); 

     if(message != null) 
     { 
      //Sending message back to client 
      PrintStream ps = new PrintStream(SOCK.getOutputStream()); 
      ps.println("Message Received"); 
      ps.println("Send from Server"); 
     } 
    } 
} 

İstemci Bunu soketlere bakmaya başladı.

cevap

1

İstemcinizin sınıfında, bufferedReader'ı yinelemeniz gerekir. yerine

String message = br.readLine(); 

System.out.println(message); 

kullanımı bu

,

String message ; 
while((message = br.readLine())!=null) { 
    System.out.println(message); 
} 
+0

Sen başlatıcı gerekmez. – EJP

+0

Ah evet, iyi nokta. –