Seriál Sokety a C/C++

Seriál navazuje na nedokončenou sérii článků o soketech, který vycházel na serveru Builder.cz, jenž ukončil svoji činnost. Články jsou určené čtenářům, kteří znají jazyk C++ (nebo alespoň C) a chtějí se naučit používat sokety a zabývaly se jednak "klasickým" soketovým API ze systému BSD, které mimo jiné používá i Linux, jednak soketovým API WinSock, které používají MS Windows.

Sokety a C/C++: funkce poll a závěr

Dnešní díl je poslední. Podíváme se, jak používat funkci poll, která v Linuxu může nahrazovat funkci select.

Radim Dostál

3. 11. 2003 0:00 | C, C++

Sokety a C/C++: promiskuitní režim

Dnes si ukážeme, jak nastavit promiskuitní režim. Existují dva způsoby, můžeme použít ioctl, nebo setsockopt. V ukázkovém příkladu si napíšeme jednoduchý program, který bude monitorovat síť.

Radim Dostál

27. 10. 2003 0:00 | C, C++
| 5

Sokety a C/C++: síťové rozhraní

Dnes se podíváme na některé parametry síťového rozhraní. Seznámíme se z funkcí ioctl. V článku je příklad, ve kterém zjistíme všechna síťová rozhraní v počítači a některé informace o každém z nich.

Radim Dostál

20. 10. 2003 0:00 | C, C++
| 1

Sokety a C/C++: rodina protokolů PF_PACKET

Dnes si napíšeme jednoduchý program na příjem všech IP paketů, které jsou doručeny počítači. Při té příležitosti se budeme muset velmi povrchně seznámit s rodinou protokolů PF_PACKET.

Radim Dostál

13. 10. 2003 0:00 | C, C++
| 5

Sokety a C/C++: datagramy a PF_UNIX

Dnes se podíváme na datagramový soket v rodině protokolů PF_UNIX. Dále si ukážeme funkci socketpair a na příkladu si ukážeme komunikaci dvou procesů pomocí anonymního datagramového soketu.

Radim Dostál

6. 10. 2003 0:00 | C, C++
| 6

Sokety a C/C++: rodina protokolů PF_UNIX

Dnes se si ukážeme soket jako obecný komunikační nástroj, který nemusí mít s počítačovou sítí vlastně nic společného. Podíváme se na zvláštní druh soketu, který je určen pouze pro komunikaci s procesem na lokálním stroji. Dnešní článek není určen pro WinSock. Příklad je pouze pro Linux.

Radim Dostál

29. 9. 2003 0:00 | C, C++
| 2

Sokety a C/C++: explicitní směrování

Dnes se podíváme na volitelnou položku IP hlavičky "explicitní směrování". Jedná se o možnost, jak zadat v IP hlavičce cestu, kterou má IP paket putovat. V článku je okomentovaný zdrojový text, v němž odešleme ECHO žádost, která bude mít v IP hlavičce nastavenou položku explicitní směrování.

Radim Dostál

22. 9. 2003 0:00 | C, C++
| 2

Sokety a C/C++: časové razítko

Dnes se podíváme na další volitelnou položku IP záhlaví, na volbu "časové razítko". Existují tři varianty položky "časové razítko". Dvě si ukážeme v příkladu a o třetí se okrajově zmíníme.

Radim Dostál

15. 9. 2003 0:00 | C, C++
| 5

Sokety a C/C++: zaznamenávání směrovačů

Dnes si ukážeme volitelnou volbu IP záhlaví typu "zaznamenávej směrovače". V článku je okomentovaný příklad odeslání ECHO žádosti v IP paketu s nastavenou volitelnou položkou IP hlavičky typu "zaznamenávej směrovače".

Radim Dostál

9. 9. 2003 0:00 | C, C++
| 3

Sokety a C/C++: volitelné položky IP záhlaví

Dnes se podíváme na volitelné položky IP záhlaví. Doposud jsme pracovali s IP pakety, které měly hlavičku ve likosti 20 bytů. IP hlavička může mít až 60 bytů. Dnes se podíváme na těch 40 bytů navíc. Dnešní článek je teoretický. Nenaleznete v něm ani řádku zdrojového textu.

Radim Dostál

1. 9. 2003 0:00 | C, C++
| 3

Sokety a C/C++: MTU a IP fragmentace (dokončení)

V minulém dílu jsme nakousli problematiku MTU. Dnes si vytvoříme příklad, který bude měřit MTU mezi naším a vybraným počítačem.

Radim Dostál

25. 8. 2003 0:00 | C, C++
| 3

Sokety a C/C++: MTU a IP fragmentace

Dnes se podíváme na fragmentaci a MTU. Vysvětlíme si pojmy a blíže se seznámíme s atributy IP hlavičky, které se týkají fragmentace. Znalosti z tohoto článku využijeme v příštím díle, kdy vytvoříme program pro měření MTU.

Radim Dostál

18. 8. 2003 0:00 | C, C++
| 6

Sokety a C/C++: program traceroute

Dnes napíšeme jednoduchou implementaci programu traceroute. Vysvětlíme si princip programu traceroute a seznámíme se blíže s ICMP paketem typu 11 kódu 0. V článku je podrobně okomentovaný zdrojový text.

Radim Dostál

11. 8. 2003 0:00 | C, C++
| 6

Sokety a C/C++: program ping

Dnes odešleme náš první ICMP paket. Bude se jednat o ECHO žádost. Odesíláním ECHO žádosti a přijetím ECHO odpovědi naprogramujeme jednoduchý program ping.

Radim Dostál

4. 8. 2003 0:00 | C, C++

Sokety a C/C++: Tělo ICMP paketu

Dnes si ukážeme situaci, kdy ICMP paket přenáší data ve svém těle. Podrobněji si na příkladu rozebereme ICMP paket typu 3, kódu 3. Dnešní článek bude takové procvičení pointerové aritmetiky jazyka C.

Radim Dostál

28. 7. 2003 0:00 | C, C++
| 2

Sokety a C/C++: přijímání ICMP paketů

V minulém dílu jsme se seznámili se strukturou a formátem ICMP paketu. Dnes si uděláme první jednoduchý příklad používající ICMP protokol. Bude se jednat o program monitorující všechny ICMP pakety přicházející na počítač.

Radim Dostál

21. 7. 2003 0:00 | C, C++
| 8

Sokety a C/C++: ICMP protokol

Další čistě teoretický článek v seriálu. Nenaleznete v něm zdrojový text. Seznámíme se se služebním protokolem ICMP, se kterým se budeme setkávat i v několika dalších dílech. V článku je nutný teoretický základ pro pochopení budoucích příkladů.

Radim Dostál

14. 7. 2003 0:00 | C, C++
| 3

Sokety a C/C++: Raw soket

Dnes se podíváme na "raw" sokety. Pomocí "raw" soketu vytvoříme a odešleme IP paket obsahující UDP datagram. V článku je podrobně popsán zdrojový text příkladu. Také si povíme něco o volbě IP_HDRINCL.

Radim Dostál

7. 7. 2003 0:00 | C, C++

Sokety a C/C++: Struktura IP a UDP

Dnes si ukážeme strukturu IP paketu a UDP datagramu. Tím získáme teoretický základ pro takzvané raw sokety. Informace z tohoto článku využijeme v příštím dílu, kdy pomocí raw soketu odešleme UDP datagram. Tento článek je čistě teoretický. Nenaleznete v něm žádný ukázkový zdrojový text.

Radim Dostál

30. 6. 2003 0:00 | C, C++
| 6

Sokety a C/C++: volby soketů

Dnes si ukážeme volby (options) soketů, které definují hodnoty různých parametrů soketu. K nastavování a čtení parametrů soketu slouží dvojice funkcí setsockopt a getsockopt. V "klasickém" soketovém API a ve WinSock API se s nimi pracuje v podstatě stejně, jen se nepatrně liší typem parametrů.

Radim Dostál

23. 6. 2003 0:00 | C, C++
| 5

Sokety a C/C++: Urgentní data

Kromě "normálních" dat, která jsme doposud přenášeli od odesílatele k příjemci, existují také tak zvaná urgentní data, která jsou "nenormální", "výjimečná". I ve světě soketů platí, že všechna data jsou si rovna, ale některá jsou si rovnější. Urgentní data (zkratkou označována jako OOB - Out Of Band) jsou data, která při odesílání označíme jako urgentní. Informace o tom, zda se jedná, nebo nejedná o urgentní data, je součástí hlavičky TCP segmentu.

Radim Dostál

16. 6. 2003 0:00 | C, C++
| 7

Sokety a C/C++: Neblokovací režim soketů

Doposud jsme mluvili o soketech, které byly v takzvaném blokovacím režimu. Snaha přečíst nějaká data, která nebyla doručena, skončí zablokováním programu (nebo přesněji vlákna). Dnes se podíváme na neblokovací režim soketů.

Radim Dostál

9. 6. 2003 0:00 | C, C++
| 4

Sokety a C/C++: Funkce select

V minulém dílu jsme si ukázali, jak seskupit sokety do množiny. Nyní si předvedeme, k čemu je množina soketů dobrá.

Radim Dostál

2. 6. 2003 0:00 | C, C++

Sokety a C/C++: Množina soketů

Tímto článkem a sérií dalších článků bych chtěl navázat na nedokončený seriál článků o soketech, který vycházel na serveru Builder.cz, jenž ukončil svoji činnost. Články byly určené čtenářům, kteří znají jazyk C++ (nebo alespoň C) a chtějí se naučit používat sokety a zabývaly se jednak "klasickým" soketovým API ze systému BSD, které mimo jiné používá i Linux, jednak soketovým API WinSock, které používají MS Windows.

Radim Dostál

26. 5. 2003 0:00 | C, C++
Měšec.cz: Cestujte bez starostí, získejte výhodné pojištění

Cestujte bez starostí, získejte výhodné pojištění

DigiZone.cz: Kritické poznámky k DVB-T2

Kritické poznámky k DVB-T2

Lupa.cz: Vydavatelé jsou v háji, ale neumí si to připustit

Vydavatelé jsou v háji, ale neumí si to připustit

Podnikatel.cz: Babiš představil daňovou revoluci Moje daně

Babiš představil daňovou revoluci Moje daně

DigiZone.cz: ČRa hodnotí pilotní 4K vysílání

ČRa hodnotí pilotní 4K vysílání

DigiZone.cz: Satelitní Flix TV vyráží do boje

Satelitní Flix TV vyráží do boje

Lupa.cz: Vzali věc, která fungovala, a přidali internet

Vzali věc, která fungovala, a přidali internet

DigiZone.cz: Mobilní aplikace pro DVTV je tady

Mobilní aplikace pro DVTV je tady

120na80.cz: Léky a dietní opatření při kopřivce

Léky a dietní opatření při kopřivce

Vitalia.cz: Margit Slimáková nesnáší rajskou, Petr Fořt pizzu

Margit Slimáková nesnáší rajskou, Petr Fořt pizzu

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Podnikatel.cz: Takhle si Babiš představuje nové daně

Takhle si Babiš představuje nové daně

Vitalia.cz: Máte chutě? Nejezděte do světa, ale do Dobřichovic

Máte chutě? Nejezděte do světa, ale do Dobřichovic

DigiZone.cz: Noxon iRadio 1 W bude za pár měsíců

Noxon iRadio 1 W bude za pár měsíců

DigiZone.cz: Soud zakázal šíření TV Markíza v ČR

Soud zakázal šíření TV Markíza v ČR

Root.cz: Quake slaví 20 let novou epizodou zdarma

Quake slaví 20 let novou epizodou zdarma

Podnikatel.cz: Výpadek internetu a #EET. Co s tím?

Výpadek internetu a #EET. Co s tím?

120na80.cz: Krémy, nebo spreje na opalování?

Krémy, nebo spreje na opalování?

Vitalia.cz: Epidemie: Klíšťová encefalitida po ovčím sýru

Epidemie: Klíšťová encefalitida po ovčím sýru

Vitalia.cz: 5 porcí ovoce a zeleniny: no ale jak na to?

5 porcí ovoce a zeleniny: no ale jak na to?