2016-12-08 20 views
0

このサーバーとクライアントプログラムを処理しようとしています。それは、次のダイアログを行う必要があります:DialogeJavaサーバーとクライアント

しかし、悲しいことに動作していない、と私はなぜ知りません。多分あなたは失敗を見ることができますか?私はServerクラスとClientクラスを作成し始めましたが、実際にそれをテストする方法はわかりません。

import java.io.PrintWriter; 
import java.net.ServerSocket; 
import java.net.Socket; 
import java.util.ArrayList; 
import java.util.Scanner; 

public class ServerSource { 

    static ArrayList<Integer> numbers = new ArrayList<Integer>(); 

    public static void main(String[] args) { 

     ServerSocket serverSocket = null; 
     Socket socket = null; 

     try { 
      serverSocket = new ServerSocket(5555); 
      socket = serverSocket.accept(); 

      Scanner kyb = new Scanner(socket.getInputStream()); 
      PrintWriter out = new PrintWriter(socket.getOutputStream()); 

      out.println("How many numbers?"); 
      out.flush(); 

      int numb = kyb.nextInt(); 
      out.println("Input " + numb + " lines:"); 
      out.flush(); 

      while (numb > 0) { 
       numbers.add(kyb.nextInt()); 
       numb--; 
      } 

      out.println("Sum: " + sum()); 
      out.flush(); 
      out.println("Avg: " + avg()); 
      out.flush(); 

     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } finally { 
      try { 
       socket.close(); 
      } catch (Exception e) { 
       System.out.println(e.getMessage()); 
      } 
      try { 
       serverSocket.close(); 
      } catch (Exception e) { 
       System.out.println(e.getMessage()); 
      } 
     } 

    } 

    public static int sum() { 
     int sum = 0; 
     for (int i = 0; i <= numbers.size(); i++) { 
      sum = sum + numbers.get(i); 
     } 
     return sum; 
    } 

    public static double avg() { 
     return sum()/numbers.size(); 
    } 

} 





import java.io.PrintWriter; 
import java.net.Socket; 
import java.util.Scanner; 

public class ClientSource { 

    public static void main(String[] args) { 

     Socket socket = null; 

     try { 
      socket = new Socket("10.210.17.189", 5555); 
      Scanner in = new Scanner(System.in); 
      PrintWriter out = new PrintWriter(socket.getOutputStream()); 

      out.println("Hello?"); 
      out.flush(); 

      String strIn = in.nextLine(); 
      out.println(strIn); 

     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } finally { 
      try { 
       socket.close(); 
      } catch (Exception e) { 
       System.out.println(e.getMessage()); 
      } 
     } 

    } 
} 

PSは:数値を除くが、クライアントプログラムの私の下手な英語

+0

問題のある箇所を教えてください。特定の障害点 – Vishnu

+2

「動作していません」とはどういう意味ですか?間違いはありますか?はいの場合、エラーは何ですか?あなたはどのような行動を期待していましたか? – Jesper

答えて

0

サーバーのため申し訳ありませんあなたは「もしもし?」それを送信します値。サーバー側でInputMismatchException例外が発生し、終了します。

関連する問題