1

クライアントがサーバーのコア数を要求するプログラムを作成しようとしています。私は次のようにこれを行います:

クライアント:

 public void actionPerformed(ActionEvent e) {
            try {
                Socket clientSocket = new Socket("128.59.65.200", 6789);
                DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
                BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
                String numberOfCores = inFromServer.readLine();clientSocket.close();
                System.out.println(numberOfCores);
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

        }

    });

サーバ:

   public static void sendNumberOfCores() {
    Thread coresThread = new Thread() {
        public void run() {
            try {
                int numberOfCores;
                ServerSocket welcomeSocket = new ServerSocket(6789);
                while (true) {
                    Socket connectionSocket = welcomeSocket.accept();
                    DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
                    numberOfCores = Runtime.getRuntime().availableProcessors();
                    outToClient.write(numberOfCores);
                }

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    };
    coresThread.setName("Wait for core request thread");
    coresThread.start();
}

ただし、サーバーをロードして、クライアント コードを実行する GUI のボタンを押すと、何も起こらず、ボタンが動かなくなります。これは何が原因ですか?

ありがとうございました。

4

2 に答える 2

0

クライアントのコードが文字列を待っているときに、整数を送信していたことが判明しました。

于 2013-08-02T16:00:47.357 に答える