-
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
- 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
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
Najnowsze wątki
- 2024-05-05 Komin do wiaty
- 2024-05-04 Bonusowe pytanie rozliczenie sie z elektrownia - fotowoltaika.
- 2024-05-04 Ujawnienie porady prawnej prokuraturze
- 2024-05-04 Jaką kamerkę samochodową polecacie?
- 2024-05-04 Warszawa => Spedytor międzynarodowy <=
- 2024-05-04 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-04 Warszawa => Inżynier DevOps (projekt JP) <=
- 2024-05-04 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-05-04 Łódź => Business Development Manager - obszar bezpieczeństwa IT <=
- 2024-05-04 Warszawa => Interactive/Experience Designer <=
- 2024-05-04 Berlin => IT Systems Administrator and Customer Support Engineer <=
- 2024-05-04 Warszawa => Mid IT Recruiter <=
- 2024-05-04 Odpowiedzialność PORTALU za reklamy
- 2024-05-04 Lunar Rover był elektrykiem. Ważył 35 kg Zasięg 80 km Na Księżycu w 1971 r.
- 2024-05-04 Marki => ERP Implementer <=