Przsyłanie zmiennej numerycznej przez socket.io

Odpowiedz Nowy wątek
2018-02-06 10:12
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?

Pozostało 580 znaków

2018-02-06 13:27

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".


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 3x, ostatnio: bogdans, 2018-02-06 13:38

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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