1

以下のようなコードがあります

サーバ側:

Socket socket = server-client conn socket
try
{
BufferedReader inFromNode = new BufferedReader(new InputStreamReader(
                    socket.getInputStream()));
PrintWriter outToNode = new PrintWriter(socket.getOutputStream(), true);
String data = inFromNode.readLine().toString();
String data1 = inFromNode.readLine().toString();
String data2 = inFromNode.readLine().toString();
outToNode .println("Hi");
}

クライアント側:

Socket socket = server-client conn socket
try
{
BufferedReader inFromNode = new BufferedReader(new InputStreamReader(
                    socket.getInputStream()));
PrintWriter outToNode = new PrintWriter(socket.getOutputStream(), true);
outToNode .println("Hi");
outToNode .println("Hi");
outToNode .println("Hi");
String data = inFromNode.readLine().toString();
}

問題は、クライアント側のコードがサーバーからの応答を待っていることです。私はサーバー側がそれを送信したと確信しています(サーバー側で送信した後にログを配置しようとしましたが、それらは印刷されました。)ここで何かを見落としていますか?コードは何らかの方法で間違っていますか?

4

1 に答える 1

0

サーバーからクライアントへの書き込みが終了したら、PrintWriter と Socket を閉じてみてください。これにより、理想的には問題が解決するはずです。

于 2013-02-22T09:34:16.127 に答える