서버와 클라이언트가 서로 메시지를 보내는 클라이언트 - 서버 프로그램을 작성하고 싶습니다. 첫째, 내 서버가 클라이언트에게 메시지를 보낸 다음 클라이언트가 응답합니다. 그런 다음 내 서버가 다른 메시지 인 클라이언트 응답을 보냅니다. 문제는 서버에서 유도 한 첫 번째 메시지에서 클라이언트가 응답하지 않는다는 것입니다. 내 서버 :Java 소켓 : 클라이언트가 서버에 응답하지 않는 이유
public class Server {
public void go() {
try {
ServerSocket serverSocket = new ServerSocket(9999);
System.out.println("Server listening ...");
Socket socket = serverSocket.accept();
try (
PrintWriter printWriter = new PrintWriter(socket.getOutputStream());
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
) {
String input;
printWriter.println(new Scanner(System.in).nextLine());
while ((input = bufferedReader.readLine()) != null) {
System.out.println(input);
printWriter.println(new Scanner(System.in).nextLine());
if(input == "Bye") break;
}
}
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
public static void main(String[] args) {
Server server = new Server();
server.go();
}
}
내 클라이언트 :
public class Client {
public void go() {
try {
try (
Socket socket = new Socket("localhost", 9999);
PrintWriter printWriter = new PrintWriter(socket.getOutputStream());
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
) {
String input;
while ((input = bufferedReader.readLine()) != null) {
System.out.println("1");
System.out.println(input);
printWriter.println(new Scanner(System.in).nextLine());
}
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Client client = new Client();
client.go();
}
}
내 코드 몇 가지 문제가 있습니까?
방법을'ServerSocket의 # 동의()'연결에 대한 수신 대기이 소켓에 그것을 수용한다. 메서드는 연결될 때까지 차단됩니다. –