Przsyłanie zmiennej numerycznej przez socket.io

Przsyłanie zmiennej numerycznej przez socket.io
RU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 211
0

Hej

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

Kopiuj
	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:

Kopiuj
	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?

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
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ć
Kopiuj
int zmienna2 = Integer.parseInt(czytelnik.readLine());

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.