eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikalwIP - odbieranie danych przez TCP › Re: lwIP - odbieranie danych przez TCP
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
    e.net!feeder.erje.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!
    peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highwinds-media.com!new
    s.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-sp
    o-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    Date: Mon, 26 Sep 2022 09:09:46 +0200
    MIME-Version: 1.0
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
    Thunderbird/91.13.0
    Subject: Re: lwIP - odbieranie danych przez TCP
    Content-Language: pl
    Newsgroups: pl.misc.elektronika
    References: <632f2939$0$455$65785112@news.neostrada.pl> <tgr59t$a52$1@gioia.aioe.org>
    From: Atlantis <m...@w...pl>
    In-Reply-To: <tgr59t$a52$1@gioia.aioe.org>
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 25
    Message-ID: <6331503a$0$550$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.27.19.159
    X-Trace: 1664176186 unt-rea-b-01.news.neostrada.pl 550 83.27.19.159:39426
    X-Complaints-To: a...@n...neostrada.pl
    X-Received-Bytes: 2353
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:774568
    [ ukryj nagłówki ]

    On 26.09.2022 05:11, a...@m...uni.wroc.pl wrote:

    > Nie uzywalem lwIP ale zerknelem do dokumentacji.
    > Z dokumantacji lwIP wychodzi ze to ma byc "zero copy". Czyli trzymasz
    > buforki tak dlugo jak sa potrzebne, a potem zwalniasz. Jak cos
    > zostalo to sobie zapamietujesz polozenie bufora i uzywasz przy kolejnym
    > callbacku. tcp_recved _nie_ zwalnia buforow, wyglada ze musisz to
    > robic oddzielnie przez pbuf_free.

    Ok, czyli chyba faktycznie najprościej będzie posłużyć się dodatkowym
    buforem pomocniczym, w którym trzymałbym nadwyżkę. Na dobrą sprawę można
    by nawet alokować te dane dynamicznie, na stercie. Wtedy po prostu przed
    zapisaniem kolejnej paczki sprawdzałoby się czy wskaźnik do bufora
    pomocniczego ma wartość inną niż NULL, zapisywało te dane do głównego
    bufora, zwalniało pomocniczy i przypisywało NULL do wskaźnika. Dopiero
    wtedy go głównego bufora szłaby paczka nowych danych, a jeśli coś by
    zostało, to nadwyżka trafiałaby do zaalokowanego na nowo bufora
    dynamicznego.
    To chyba jednak bardziej eleganckie rozwiązanie niż opóźnianie
    zwalniania całej struktury pbuf do kolejnego callbacka.

    Po prostu miałem nadzieję, że można to zrobić bez takich kombinacji,
    jedynie pobierając potrzebny w danej chwili kawałek bufora, jak w
    przypadku MLA na PIC32.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: