Przsyłanie zmiennej numerycznej przez socket.io

0

Hej

Mam problem z przesłaniem zmiennej numerycznej przez serwer napisany w javie.
Metoda wysyłająca:

	public void doIt()
	{
		try
		{
		ServerSocket gniazdo = new ServerSocket(4241);
		
		while(true)
		{
		Socket gniazdo2 = gniazdo.accept();
		PrintWriter pisarz = new PrintWriter(gniazdo2.getOutputStream());
		pisarz.println("test");
		pisarz.print(99);
		pisarz.close();
		}
		}catch(Exception ex) 
		{
			ex.printStackTrace();
		}
	}

Metoda odbierająca:

	public void polaczenie()
	{
		try
		{
		BufferedReader czytelnik = new BufferedReader(new InputStreamReader(new Socket("127.0.0.1", 4241).getInputStream()));
		int zmienna2 = czytelnik.read();
		String zmienna3 = czytelnik.readLine();
		System.out.println(zmienna3 + "\n" + zmienna2);
		czytelnik.close();
		}catch(Exception ex)
		{
			ex.printStackTrace();
		}
	}

Stinga odbiera mi poprawnie "test" ale z numerykiem jest problem. Otrzymuję wartość 120 zamiast spodziewanej 99.
W czym tkwi problem? Moze używam złych metod do odbierania?

1

Masz dwa błędy:

  • w złej kolejności czytasz, zapisujesz w kolejności String, int, czytasz w kolejności int, String
  • nie rozumiesz działania metody read, ona odczytuje kod ASCII, powinno być
int zmienna2 = Integer.parseInt(czytelnik.readLine());

Zagadkowe 120, to kod ASCII pierwszej litery w słowie "test".

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