Witam ostatnio na zajęciach miałem do napisania prosta aplikacje na sockecie (serwer miał odebrać wiadomość od klienta a następnie miał wysłać samemu wiadomość) wszystko niby banalne lecz nauczyciel kazał użyć nam BufferedReader i PrintWriter. Niby aplikacja napisałem ale problem polega na tym że wiadomość zostaje wysłana lecz druga strona jej nie odbiera (spostrzegłem że niekończące się wysyłanie wiadomości rozwiązuje problem ale tu nie o to chodzi) jakby ktoś mógł spojrzeć na kod i podać mi czemu tak się dzieje.
serwer :
public class Server {
BufferedReader in; // strumień czytający
PrintWriter out; // strumień wysyłający
void runServer() throws IOException{
ServerSocket server = new ServerSocket(3000);
System.out.println("Server run ... ");
Socket socket = server.accept();
System.out.println("Jest klient");
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
System.out.println("czeka na wiadomosc");
String readLine = in.readLine();
System.out.println(readLine);
out.println("Odpowiedz klienta");
System.out.println("wysłano");
}
public static void main(String[] args) throws IOException{
new Server().runServer();
}
}
klient :
public class Client {
Socket connection;
BufferedReader in;
PrintWriter out;
public Client() throws IOException, InterruptedException {
String hostName = "localhost";
connection = new Socket(hostName, 3000);
System.out.println("Polaczono.....");
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
out = new PrintWriter(connection.getOutputStream());
System.out.println("wysylam wiadomosc");
out.println("wiadomosc od klienta");
System.out.println("wysłano");
System.out.println("czeka na odpowiedz");
String readLine = in.readLine();
System.out.println(readLine);
}
public static void main(String[] args) throws IOException, InterruptedException {
Client client = new Client();
}
}