- 締切済み
TCP関係のjavaプログラム
TCPでオウム返しをするサーバとクライアントソフトでクライアント側でピリオドだけを入力すると接続を切るプログラムを作っているのですがなかなか思い通りにいきません。 正しいソースコードを教えてください。 クライアント側のソースコード import java.io.*; import java.net.*; public class echoClient { public static void main(String[] args) { Socket echoSocket = null; DataOutputStream os = null; BufferedReader is = null; try { echoSocket = new Socket("localhost", 9999); os = new DataOutputStream(echoSocket.getOutputStream()); is = new BufferedReader(new InputStreamReader(echoSocket.getInputStream())); } catch (UnknownHostException e) { System.err.println("Don't know about host: localhost"); } catch (IOException e) { System.err.println("Couldn't get I/O for the connection to: localhost"); } if (echoSocket != null && os != null && is != null) { try { os.writeBytes("HELLO\n"); String responseLine; if ((responseLine = is.readLine()) != null) { System.out.println("Server: " + responseLine); } os.close(); is.close(); echoSocket.close(); } catch (UnknownHostException e) { System.err.println("Trying to connect to unknown host: " + e); } catch (IOException e) { System.err.println("IOException: " + e); } } } } サーバー側のプログラム import java.io.*; import java.net.*; public class echoServer { public static void main(String args[]) { ServerSocket echoServer = null; String line; BufferedReader is; PrintStream os; Socket clientSocket = null; try { echoServer = new ServerSocket(9999); } catch (IOException e) { System.out.println(e); } try { clientSocket = echoServer.accept(); is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); os = new PrintStream(clientSocket.getOutputStream()); while (true) { line = is.readLine(); os.println(line); } } catch (IOException e) { System.out.println(e); } }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- salsberry
- ベストアンサー率69% (495/711)
「クライアント側でピリオドだけを入力すると接続を切る」ということは、ピリオド以外の内容が入力されたらその内容をクライアントからサーバへ送って、サーバからオウム返しすることを繰り返したい、という理解で合っていますか? そうだとすると、今のクライアントプログラムには下記のものが足りません。 (1)入力を行う部分 (2)入力された内容がピリオドだけかそうでないかを判断する部分 (3)"HELLO¥n"という固定文字列の代わりに入力された内容をサーバに送る部分 (4)入力・判断・サーバへのデータ送信・サーバからのデータ受信・サーバから受け取ったデータの出力を繰り返す部分 どの部分が分からないのかを補足してください。
補足
他の人に聞くのでもう結構です。ありがとうございました