Socket brak komunikacji serwer -klient

0

Chce stworzyć program do "loterie" która będzie mi pobierać od klienta liczbę a w serwer będzie losował liczbę i porównywał z liczbą od klienta porównywał i sprawdzał czy są takie same. Ale nie wiem gdzie robię błąd :

public class Server {

	public static void main(String[] args) throws IOException{
		
		ServerSocket server = new ServerSocket(6565);
		boolean stop = false;
		
		while(!stop){
		try(	
		Socket socket = server.accept();
		BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));		
		BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

        ){
			
			writer.write("Lucky number working on a server port" + server.getLocalPort() + "\n");
			writer.write("Enter the number from 0 do 100: \n ");
			writer.flush();
			
			int fromClinet;
			
							
				fromClinet =reader.read();
				System.out.println(fromClinet);
				
				Random random = new Random();
				int rNmuber;
				for(int i=0; i<1; i++) {
					rNmuber = random.nextInt(101);
					
					if(rNmuber == fromClinet){
						writer.write("Congratulations you win!!!");
					}
					else{
						writer.write("Sorry  you lose  ");
					}
					
				}
				
				writer.flush();
				
				
				
						
			
		}catch (Exception e) {
			e.printStackTrace();
		}
public class Client {

	public static void main(String[] args) {
		try(
				Socket socket = new Socket("localhost", 6565);
				BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
				BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
				){
			
				BufferedReader scanner = new BufferedReader(new InputStreamReader(System.in));
			
		while(true){
				String fromServer;
				
				
								
				fromServer = reader.readLine();
				System.out.println("Welcoem in " +fromServer);
				fromServer = reader.readLine();
				System.out.println(fromServer);
							
				
				writer.write("Your number: ");
				writer.flush();
				int in = scanner.read();
				writer.write(in + "\n");
                writer.flush();
     		
				
		}
			
		}catch (Exception e) {
			e.printStackTrace();
		}

	}

}
0

A czy brakowi komunikacji towarzyszy jakiś wyjątek?

0

Nie

0

dostaje na konsoli to Lucky number working on a server port....
Enter the number from 0 do 100: .....

oraz otwiera mi się jeszcze jakaś dodatkowa z wypisanym 89.
Jak wpiszę jakąś liczbę nie dostaje już zwrotki z wynikowym tekstem

0

Zamyka Ci strumienie..

Próbowałeś w ten sposób?:

//otworz strumienie

try{
    //losowanie
}catch(Exception e){
    //...
}finally{
    //zamknij strumienie 
}
0

Przyjrzałem się Twojemu kodowi. Wygląda jakbyś nie przemyślał co kiedy i po co chcesz przesłać. 89 to kod ASCII litery Y, którą przesyła Twój klient i która jest odbierana przez serwer jako liczba 89. Przeanalizuj swój kod...

0

Dziękuje już się połapałem w tym

0
fromServer = reader.readLine();

Skoro czytasz całą jedną linie, to może też zapisuj do serwera po linii a nie machasz wszystko do jednej linii. Look:

 writer.write("Congratulations you win!!!");

zamień wirter.write na writer.writeLine albo dodaj po tej instrukcji writer.nextLine, nie pamiętam jakie tam były opcję teraz i zobacz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1