Aplikacja typu Server/Client - nieprzesyłanie danych

0

Witam,
ostatnio pracuję nad prostym komunikatorem opartym na protokole TCP/IP. Napisałem już kod serwera i klienta, ale moje aplikacje nie potrafią przesyłać kodu między sobą. Niby wszystko działa, gdy wyślę wcześniej przygotowanego Stringa (String str = "moj tekst";) ale gdy chce wysłać Stringa z zawartością wpisaną przez użytkownika nic z tego nie wychodzi ;/

http://rob1n92.pl/download/NetBeansProjects.7z

PS. W załączniku spakowałem cały projekt NetBeans. Kod serwera jest jeden, opracowałem do niego dwa klienty - konsolowy (do szybkiego testowania) i graficzny. Oba nie potrafią przesłać danych na serwer. Btw, link jest bezpieczny, dodałem to tak bo forumowa opcja załączania mi nie działała.

PSS. Nie zawracałbym Wam głowy gdybym sam był w stanie sobie z tym poradzić, ale męczę się już kolejny dzień i ciągle nie mogę znaleźć błędu... Także wszelka pomoc mile widziana :)

0

Zastanawia mnie tylko czemu używasz akurat DataInputStream i DataoutputStream zamiast np BufferedReader'a i PrintStream'a ??

0

w sumie to nie wiem, znalazłem kiedyś na jakimś tutorialu i tak już zostało; wieczorem spróbuje BufferedReader i PrintStream

EDIT:
Zmieniłem na BufferedReader i PrintStream i niestety dalej nie przesyła danych...

0

Przejrzałem na szybkiego kod i na razie jedyne co mi się nasuwa to że nie używasz metody flush() po napisaniu do strumienia metodą write() (czy writeUTF() wszystko jedno). Spróbuj poprawić (dopisać wykonywanie flusha ) i sprawdź.

0

Niestety dalej nie działa, ale gdy rozłączę klienta graficznego od serwera to w aplikacji serwerowej pojawia się ostatnio wysłany tekst.

EDIT:
Rozwiązałem problem! Jak zwykle okazało się, że była to pierdoła... Wystarczyło w funkcji odbierającej przypisać nowego Stringa zmiennej, która odbiera.

zamiast:

Txt = Is.readUTF();
if (!Txt.isEmpty()) Konsola.showText(Txt);

trzeba było dać to:

Txt = Is.readUTF();
if (!Txt.isEmpty()) Konsola.showText(Txt);
Txt = new String();

Dzięki wszystkim za pomoc :)

0

Śmiem twierdzic ze to dziala przypadkowo, nie mam pojecia co ta jedna linijka ma niby zmienic...

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