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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 21 maja 2025, o 02:52


    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 0 gości


    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