-
X-Received: by 10.31.95.134 with SMTP id t128mr816043vkb.11.1507842550411; Thu, 12
Oct 2017 14:09:10 -0700 (PDT)
X-Received: by 10.31.95.134 with SMTP id t128mr816043vkb.11.1507842550411; Thu, 12
Oct 2017 14:09:10 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-medi
a.com!news.highwinds-media.com!z50no345787qtj.0!news-out.google.com!r5ni1022qtc
.1!nntp.google.com!k31no345303qta.1!postnews.google.com!glegroupsg2000goo.googl
egroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 12 Oct 2017 14:09:10 -0700 (PDT)
In-Reply-To: <1...@t...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=159.205.38.229;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 159.205.38.229
References: <ooppg2$lcn$1@node2.news.atman.pl> <oou48p$hcp$1$gof@news.chmurka.net>
<b...@t...com> <or2oa7$ui7$2$gof@news.chmurka.net>
<d...@t...com> <ornnr8$tfk$1$gof@news.chmurka.net>
<1...@t...com>
<f...@g...com>
<1...@t...com>
<3...@g...com>
<7...@g...com>
<1...@t...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3...@g...com>
Subject: Re: Wieloużytkownikowy serwer udp?
From: "M.M." <m...@g...com>
Injection-Date: Thu, 12 Oct 2017 21:09:10 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Body-CRC: 4207572356
X-Received-Bytes: 5123
Xref: news-archive.icm.edu.pl pl.comp.programming:211623
[ ukryj nagłówki ]On Thursday, October 12, 2017 at 7:04:54 PM UTC+2, Roman Tyczka wrote:
> On Thu, 12 Oct 2017 09:50:21 -0700 (PDT), M.M. wrote:
>
> >>> Istnieje co prawda coś takiego jak websockets, ale to zupełnie inna bajka.
> >>>
> >> Jest w sieci wiele przykładów serwerów i klientów http. Jeśli Ci zależy,
> >> możesz któryś poznać. Wpisz w google np. taką frazę "qt http server"
> >
> > Może tam Cię coś zainteresuje:
> > http://doc.qt.io/qt-5/qtwebsockets-echoserver-exampl
e.html
> >
> > Pozdrawiam
>
> Ale przecież napisałem, że nie chodzi o websockety bo to inna bajka, osobna
> (nowa) technologia i do czego innego służąca.
> A jeśli chodzi o źródła serwerów... jedynie serwery pokroju Apache czy IIS
> są tu istotne, bo to one trzymają na swoich plecach internet, a żeby zbadać
> źródła takiego Apache to ...jestem za chudy w uszach. Stąd dopytuję, może
> ktoś w tym siedzi zawodowo i po prostu wie.
>
> --
> pozdrawiam
> Roman Tyczka
I tak nie wiem czego nie wiesz. Robi się close(socket) jeśli
upłynął zadany czas, albo po każdej odpowiedzi. Zaimplementować to
można na kilkadziesiąt sposobów i każdy będzie dobry. Jeśli
nie odpowiesz mi dlaczego chcesz to wiedzieć i do czego potrzebujesz, to
mogę jedynie ponownie odesłać do źródeł. Możesz napisać swój
edukacyjny serwer http i będziesz miał jakąś implementację bez
czytania źródeł apache i iis. Naprawdę nie trzeba być mistrzem
świata w programowaniu, aby w kilka godzin napisać swój serwer z
konfiguracją keep-alive.
Natomiast teoretycznie można by zoptymalizować czasy, ale nie
słyszałem aby w praktyce to się stosowało. Obojętnie jak
to w danej implementacji ktoś zoptymalizuje, to po prostu
robi się close(socekt) gdy zaszły warunki danej strategii.
Wracając, w przypadku http, klienta każdy może napisać, więc nie
można liczyć na rozsądne zachowanie ze strony klienta. Wszelkie
strategie muszą być po stronie serwera. Otwieranie za każdym razem
połączenia kosztuje. Przetrzymywanie otwartych połączeń też kosztuje.
Serwer w przybliżeniu wie jaki jest średni rozkład prawdopodobieństwa
zapytań od jednego klienta, a nawet wie, jakie jest rozkład po
konkretnym zapytaniu. Jeśli znamy rozkłady, znamy koszt
otwierania połączenia, znamy koszt przechowywania połączenia, to
można zbudować hash-table zapewniającą sub-optymalne zachowanie:
while( is_work )
request = get_request
if new_connection then
keep_alive = init_value
else
keep_alive += hash_table[ request ]
end if
response = compute( request )
send( response )
if current_time - time_open > keep_alive
close(socket)
end if
build_strategy( hash_table , request )
end while
Pozdrawiam
Następne wpisy z tego wątku
- 14.10.17 10:02 AK
- 17.10.17 15:46 m...@k...org
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=