그에 따라 데이터가 전송 된 경우 String ack로 응답하는 EchoServer를 작성했습니다.ObjectInputStream 및 ObjectOutputStream
내 클라이언트가 다음과 같이 보입니다. 서버에서 응답을 받기 위해 "echoSocket"은 수신 된 데이터를 내 ObjectInputStream에 저장합니다. 이 부분에 대해 고객이 언급 한 경우에만
echoSocket = new Socket(server_name, tcp_port);
System.out.println(" *** Connected to " + server_name + " ***");
System.out.println("Press Enter to send your message.");
out = new ObjectOutputStream(echoSocket.getOutputStream());
in = new ObjectInputStream(echoSocket.getInputStream());
out.flush();
String message = System.console().readLine();
while(!message.equals("quit")) {
// problem
if (in.readObject().equals(ack))
System.out.println("ACKed");
in.close();
// problem ends
out.flush();
out.writeObject(message);
System.out.println("Sending: " + message);
message = System.console().readLine();
out.flush();
}
아무도 내 문자열을 보내지 않는 이유를 알고 있습니까?
덕분에, 소켓을 통해 객체 스트림을 사용 마리우스
ack는 문자열 리터럴을 의미합니까? 변경 : if (in.readObject(). equals ("ack")) – barrowc