Wskazówki przy tworzeniu klasy obsługującej TCP/UDP

0

Witam,

Właśnie zajmuję się pisaniem klasy, która ma mi posłużyć do obsługi komunikacji typu TCP i UDP(ew. Mysql w przyszłości). I teraz mam pytanie: jak zrobić wewnętrzną obsługę dla większej ilości klientów ?

Najsampierw chciałbym opisać jak ja to widzę :
Tworzę dynamiczne tablice (ArrayList) dla klas Socket ,BufferedReader, PrintWriter. I w momencie gdy otwieram połączenie server.accept() to tworzę także nowe pola w tablicach.

clients.add(server.accept());
outtab.add(new PrintWriter(clients.get(0).getOutputStream());
intab.add(new BufferedReader(new InputStreamReader(clients.get(0).getInputStream())));

I potem gdybym chciał wysłać wiadomość do klienta 1 to stworzyłbym parametryczną metodę gdzie podaje do którego chcę wysłać. Oczywiście byłaby też druga do wysyłania do każdego klienta przez pętelkę.

Czy to jest dobre wyjście, czy jest też może inne ?

PS. Niniejszy post odnosi się tylko do obsługi TCP.

0

Nie uzyskałem odpowiedzi, w ten czas sam wszystko rozmyśliłem i wymyśliłem.
Proszę tylko o krótką opinie czy dobrze myśle:

Cała obsługa polega na łączeniu klientów z serwerem TCP/IP. Po połączeniu klienta z serwerem, serwer pobiera informacje o kliencie, które w przyszłości będą rozsyłane do innych klientów jak na serwer przystało :>. Wysyłanie wiadomości przez klientów do innych klientów w przypadku TCP będzie polegało na wysłanie wiadomości do serwera a serwer odsyłaniu do wybranych klientów. Zaś UDP bezpośrednio z klienta do klienta. (Jako klient) Adres IP innych klientów będziemy uzyskiwać od serwera, który wówczas uzyska te informacje od razu przy połączeniu z klientami, jak wcześniej wspomniałem (czyli będzie tablica z adresami klientów).

To by było na tyle. Z góry dziękuję za udzielenie sugestii bądź opinii.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.