Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 1 gru 2024, o 20:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 
Autor Wiadomość
PostNapisane: 4 sty 2015, o 09:14 
Offline
Użytkownik

Dołączył(a): 05 gru 2013
Posty: 246
Pomógł: 0

Mam pewne wątpliwości, związane ze sposobem działania prostego przykładu obsługi połączeń TCP za pomocą Arduino Ethernet Shielda. O ile dosyć dobrze rozumiem zasadę działania układu W5100, to umyka mi jeden "wysokopoziomowy" drobiazg.

Mamy taki oto kod:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak widać obiekt client powoływany jest do życia w pętli głównej, przypisywana jest do niego obsługa połączenia zgłaszanego przez serwer. Następnie w instrukcji warunkowej wysyłamy do wszystkich podłączonych klientów (server.write()) znak wysłany przez wspomnianego wcześniej klienta.

Początkowo kod była dla mnie jasny. Sądziłem, że tworzymy obiekt obsługujący tylko jednego klienta, w związku z czym możliwa będzie jednoczesna obsługa tylko jednej sesji. Jak się jednak okazało, mogę podłączyć aż trzy sesje telnetu, czyli tyle, na ile pozwala ilość socketów W5100 (jeden na serwer + trzy na klienty).

Teraz zastanawia mnie jednak sprawa. W kodzie tworzymy tylko jeden obiekt o nazwie "client", a najwyraźniej Arduino i tak rozróżnia poszczególne połączenia. W tym przypadku nie ma to wielkiego znaczenia, jednak jak oprogramować jakieś poważniejsze zastosowanie, np. serwer telentu udostępniający wiersz poleceń? W przypadku obsługi kilku klientów będę musiał mieć możliwość rozpoznania, który do mnie "nadaje" w konkretnym momencie, żeby znaki lądowały w odpowiednim buforze. Będę musiał także przypisać do nich właściwe timery, które przerwą połączenie po ustalonym czasie nieaktywności. Chciałbym też mieć możliwość ustalenia limitu jednoczesnych połączeń, żeby przynajmniej jeden socket pozostał wolny dla klienta WWW (upload jakichś wartości na serwer) albo NTP.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO