Obecnie piszę naiwny kod sieci dla projektu, a kumpel podpowiadał mi, że kiedy wysyłam paczkę informacji z serwera do wszystkich klientów w sposób powtarzalny, może pojawić się silne opóźnienie, gdy jeden z klienci nie reagują poprawnie.Czy OutputStream w Java blokuje? (Gniazda)
Jest znany z trollingu, więc byłem sceptycznie nastawiony do implementacji wątku dodatkowego, który jest teraz odpowiedzialny za wysyłanie danych do klienta, mając kolejkę, którą serwer po prostu dodaje pakiety, a następnie odczytuje ją przez wątek wysłać dane.
Pytanie, które mam teraz po przemyśleniu, to pogoda, a nie OutputStream z Java Socket faktycznie kolejki rzeczy, które chce wysłać sam, eliminując w ten sposób konieczność kolejki wcześniej. Możliwość wystąpienia poważnych problemów występuje tylko wtedy, gdy serwer jest blokowany, o ile nie otrzyma odpowiedzi od klienta, że odebrany obiekt został odebrany.
Dzięki.
Wystąpił podobny problem, jeśli próbuję uzyskać ouput lub strumień wejściowy w funkcji uruchamiania wątku.Problem z blokowaniem (zarówno dla getInputStream, jak i getOutputStream) gniazda polega na tym, że jest on w funkcji uruchamiania ... rozwiązaniem wydaje się umieszczenie go w konstruktorze, zapisanie zmiennej, a następnie odwołanie do zmiennej w uruchomieniu. – Zimm3r