Diff for ''
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| <div style="clear: right; float: right; line-height: 1.4; margin: 0 0 1em 1em; width: 16em; border: 1px solid #aaa;"> {| class="wikitable" style="font-size: 85%; margin-top: 0; width: 100%;" |- | style="font-size: 120%; font-weight: bold; text-align: center; background: #def;" |Prednášky z [[Vyčíslitelnost II_|Vyčísliteľnosti II]] |- !Obsah |- || *[[TIN065 Prehľad|Prehľad]] *[[TIN065 Prednáška 01|Prvá prednáška]] *[[TIN065 Prednáška 02|Druhá prednáška]] *[[TIN065 Prednáška 03|Tretia prednáška]] *[[TIN065 Prednáška 04|Štvrtá prednáška]] *[[TIN065 Prednáška 05|Piata prednáška]] *[[TIN065 Prednáška 06|Šiesta prednáška]] *[[TIN065 Prednáška 07|Siedma prednáška]] *[[TIN065 Prednáška 08|Ôsma prednáška]] *[[TIN065 Prednáška 09|Deviata prednáška]] *[[TIN065 Prednáška 10|Desiata prednáška]] *[[TIN065 Prednáška 11|Jedenásta prednáška]] *Dvanásta prednáška *[[TIN065 Zhrnutie|Zhrnutie na skúšku]] |} </div> |
# IPv6 sockety a kompatibilita s IPv4 <{ForumPost(poster="marxin", timestamp=2010-02-05 16:30:24)}> Ahoj, v průběhu práce na zápočtovém programu jsem narazil na problém přenositelnosti socketu na IPv6, kde vznikla nové struktura sockaddr_in6 a vzniklo jakési zapouzdření sockaddr_storage, které má v sobě uchovávat obě struktury. Chtěl jsem se optat, jak se nechá nejlépe udělat poslouchání socketu na jak IPv4, tak IPv6, nebyl jsem schopen vygooglit nějaký schopný příklad a ve slidech také není mnoho. Díky, Martin <{/ForumPost}> <{ForumPost(poster="Andrej", timestamp=2011-01-15 12:12:12)}> getaddrinfo(), AI_V4MAPPED a je to. (Detaily jsou v manuálové stránce.) Pak pro IPv4 i IPv6 stačí pouze IPv6 struktury adres. <{/ForumPost}> <{ForumPost(poster="petrbel", timestamp=2014-01-22 13:19:19)}> můžeš mrknout na tenhle příklad [http://mff.devnull.cz/pvu/src/resolving/getaddrinfo.c](http://mff.devnull.cz/pvu/src/resolving/getaddrinfo.c) - socket() i bind() se volají v tom cyklu (je potřeba kontrolovat, jestli se bind() povedl a když ne, tak zavřít socket. Dále je potřeba kouknout po skončení cyklu, jestli jsme vůbec něco otevřeli). Upozornění - tenhle příklad otevře jeden (libovolný) port na nějaké adrese (podle toho, co bude na daném systému volné). Nebude tedy možné přijímat ipv4 i ipv6 (na to je potřeba použít AF_INET6 a socketu nastavit přes setsockopt() aby bral i ipv4) - to ale není podle normy (ale všude to funguje) <{/ForumPost}> |