[Java] Sockety - odbiór danych...

0

Dzień dobry, postawiłem sobie ambitne zadanie napisania czatu w javie
no i mam problem jak zwykle...

Jeżeli chodzi o wysyłanie tekstu na server to metodą prób i błędów
doszedłem do czegoś takiego:

(Socket sck, TextField tF)

sck.getOutputStream().write(tF.getText().getBytes());

no i idąc tą samą drogą do odbioru z servera zrobiłem
osobny wątek w którym pojawia się coś takiego:

(Socket sck, String tmp, TextArea tA)

while (true) {
if(sck.getInputStream().read(tmp.getBytes()) > 0) {
tA.append(tmp);
}
}

oczywiście to już nie działa, konkretnie to nic nie czyta do stringa,
działa tylko wtedy kiedy czytam po jednym bajcie przez read()

Wydaje mi się że przydało by się jakieś SetLength do zmiennej tmp
ale nie wiem jak to wykonać i czy rzeczywiście tak ma być...

Proszę o pomoc, jakieś naprowadzenie na właściwą drogę ...

0

(socket connection)
BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream()
)
);

String komunikat = in.readLine();

w ten sposob czytam po calej linii...

wysylam tak samo...
radze tobie tez buforowac strumien wejsciowy bo dzieki temu jest szybciej i nie musisz czytac po jednym bajcie tylko Od razu całe linie do stringa zapisywac... podobnie ze strumieniem wyjsciowym
PS:też robilem czata:D

0

w ten sposob czytam po calej linii...

dzięki, to bardzo przydatne funkcje, zaraz to wszystko
obadam [hurra] chociaż udało mi się w końcu wczytać
to na surowo i wyświetlić…

  byte tmp[] = new byte[1024];
  while (true) {
      if(sck.getInputStream().read(tmp) > 0) {
          tA.append(new String(tmp));
      }
  }
0

daj zeby nierownalo sie -1, a nie bylo wieksze od 0.... bo -1 jest zwracany gdy w strumieniu nic nie ma a probojesz z niego czytac
mozna czytac jakisString=jakisString+ STREAM.read(); - moze prosciej :) polecam kursy w necie :) jest sporo fajnych metod do obslugi strumieni i do buforowania... i tak sam sobie musialem pisac kilka ale i tak...:D
(mozna tez sprawdzac czy strumien nie jest null)

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