Sokety – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Sokety – C / C++ – Fórum – Programujte.comSokety – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
police
~ Anonymní uživatel
3 příspěvky
26. 8. 2008   #1
-
0
-

Je možné na jednom serverovom sokete (jeden TCP/IP port) mať otvorených viacero spojení (každé v jednom threade), alebo je možné v danom čase len jedno (t.j. pre obslúženie 2. pripojenia je potrebné najskôr ukončiť 1.) ??

Nahlásit jako SPAM
IP: 91.127.135.–
Reklama
Reklama
Master
~ Anonymní uživatel
95 příspěvků
26. 8. 2008   #2
-
0
-

Samozrejme ze to jde.Bez toho by nemohly existovat multiplayerove hry tak,jak je zname dneska :)
Konkretne to funguje tak,ze v main threadu mas kod,ktery zachytava prichozi spojeni a predava je nove vytvarenym vlaknum k jejich obsluze.

Nahlásit jako SPAM
IP: 85.135.97.–
police
~ Anonymní uživatel
3 příspěvky
26. 8. 2008   #3
-
0
-

hmm predpokladal som
ako to ale funguje? Spojenie TCP/IP identifikuje (podľa knihy ktorú som čítal) IP oboch účastníkov spojenia a port (klienta aj servera). Pokiaľ je ale možne mať v jednom čase na jednom porte viacero spojení musí OS tieto spojenia ešte podla niečoho rozoznávať (resp. samotné pakety musia niesť nejakým spôsobom informáciu o tom ktorému konkrétnemu spojeniu patria). Vie mi prosím Vás niekto ozrejmiť ako to funguje (čo som nepochopil/prehliadol??)

Nahlásit jako SPAM
IP: 91.127.135.–
Master
~ Anonymní uživatel
95 příspěvků
26. 8. 2008   #4
-
0
-

Koukej,u serverove casti je vetsinou nejaka metoda podobna tehle "server_accept()".Ta ma nejake parametry a uklada nejaky identifikator spojeni.Tento identifikator pak dale predavas do metody,ktera zpracovava dane pripojeni ve svem threadu.Samozrejme,ze OS si vsechno ridi a prepina a vetsinou uz tohle nemusis resit.Kazdy packet co putuje po internetu (tcp/ip/udp) s sebou nese nejaka data o prijemci a odesilateli.Ty se pak pouzivaj pri spojeni.

Nahlásit jako SPAM
IP: 85.135.97.–
police
~ Anonymní uživatel
3 příspěvky
26. 8. 2008   #5
-
0
-

Ok dík
no ja používam istý c++ framework ktorý TCP/IP implementuje objektovo t.j. mam nejaku server triedu ta ma metodu accept ktora vytvori novy objekt typu connection (ktory predstavuje jedno spojenie). Akurat to prerabam tak aby sa kazde spojenie predalo novemu vlaknu ktoré bude mať na starosti komunikáciu s klientom a uzavretie spojenia (Doteraz som mal len jedno UI vlakno a jedno vlakno ktore v cykle bralo pripojenia po jednom). Len som chcel vediet ci tato implementacia je mozna t.j. ci je mozne na jednom porte mat otvorenych viac spojeni, kedze som si tym na zaklade mojich nie celkom idealnych vedomostiach o TCP/IP mal jasno, ale teraz uz viem ze ano (este raz dik).
Cielom mojho druheo prispevku teda nebolo, "ako na to", ale ako je to zhruba implementovane na urovni OS a samotneho TCP/IP, kedze pri mojom studiu som si nejaku takuto "fintu" nevsimol a rad by som to vedel (lepsie tomu rozumel, nerad totiz robim z vecami ktorím nerozumiem). Kazdopadne dik teraz tomu uz chapem

Nahlásit jako SPAM
IP: 91.127.135.–
Master
~ Anonymní uživatel
95 příspěvků
27. 8. 2008   #6
-
0
-

Není zač.Zkus se podivat po nejakych informacich o tcp/ip,jak vypada struktura apod.Pak se muzes podivat na model ISO-OSI,ktery ukazuje 7 vrstev systemu a jejich praci.To by ti taky mohlo pomoct neco pochopit.

Nahlásit jako SPAM
IP: 85.135.97.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 88 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý