jak zastąpić fragment kodu...

0

Hej!
Mam taki oto kod:

InputStream in = socket.getInputStream();
     	 OutputStream out = socket.getOutputStream();
      
      out.write(( msg ).getBytes());
      
      int c;
      while ((c = in.read()) != -1) {

	
        out.write((char)c);
        System.out.print((char)c);

Jak mogę zastąpić fragment kodu tak by nie musieć korzystać z mechanizmu rzutowania typów?

0

(char)c

możesz zastąpić tak:

Integer.toString(c)

(nie wiem czy Cię to usatysfakcjonuje, bo nie wiem czy dokładnie o to Ci chodziło)

0

Niby moge tak zrobic, lecz chodzi o to, że program nasłuchuje z telnetu poprzez Putty i problem polega na tym, że jesli wpisze ciag znaków w Putty, np:

"ala ma kota" -z klawiatury, to mimo to na ekranie terminalu Putty widziane są znaki podwojone, więc w formie takiej: "aallaa mmaa kkoottaa", gdzie znaku "spacji" nie podwaja. A widzialny tekst ktory program zwraca do mojego GUI (jCreator) jest pisany w pojedynczych znakach, wiec poprawnie.

0

nie jestem w 100% pewien tego co piszę, ale...
wydaje mi się że podwójne znaki to nie wina rzutowania tylko którejś z tych linijek:
out.write(( msg ).getBytes());
bądź
out.write((char)c);

Spróbuj zakomentować jedną albo drugą(raczej tą drugą). Ja to teraz widzę tak: Ty wpisujesz znak w PuTTy więc pojawia się na ekranie, przez telnet leci do programu - program go odczytuje i ponownie wypisuje na "out" czyli wraca przez telnet i pojawia się w PuTTy, stąd są dwa.

0

Masz rację pomogło pozbycię się linijki:
out.write((char)c);

Z tym, że teraz w przeciwieństwie do poprzedniej sytuacji gdy obie to linie kodu były aktywne wpisany tekst jest "przelewany" do GUI dopiero po naciśnięciu klawisza Enter. Wcześniej odbywało się to w czasie rzeczywistym.

Ale i tak już jest lepiej ;).
pzdr.

0

Tak z ciekawości pytając czy sama Java lub SO narzuca ograniczenie co do liczby tworzenia wątków potomnych z poziomu języka, czy może być ich nieskończenie wiele?

pzdr.

0

SO na pewno narzuca. Na przykład w linuxie wątki są traktowane jak procesy i ich łączna liczba zwykle (i defaultowo) nie może przekraczać 255 (6?).

Poza tym - żaden komputer nie ma nieograniczonej pamięci, każdy wątek to zużycie pamięci - ograniczenie musi być choćby ze względu na ten fakt.

HTH

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