{"version":1,"pages":[{"id":"-ME5zR-1wNb4ngs_Lfet","title":"簡介","pathname":"/","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT0wDHq4VNd6Dt__","title":"原著資訊","pathname":"/original","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT29d-j5IDHotRQJ","title":"譯者誌謝","pathname":"/translator_comment","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT0xvdG1xSpWuTN2","title":"進階資料","pathname":"/advanced_ref","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT0uHrj3fqVa0oP8","title":"簡體中文版","pathname":"/chinese-simple","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT0v8TGGae5YvXXm","title":"中文授權","pathname":"/license","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT0tPeTmixP63W5E","title":"聯絡譯者","pathname":"/contact","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT0yj6JMQSopUfs0","title":"1. 導讀","pathname":"/introduction","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT0zi9PcWIpMtz4K","title":"1.1. 本書的讀者","pathname":"/introduction/readers","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"1. 導讀"}]},{"id":"-ME5zT1-NjIgTTx4d2A5","title":"1.2. 平台與編譯器","pathname":"/introduction/platform_compiler","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"1. 導讀"}]},{"id":"-ME5zT10BRCLLJluPpF8","title":"1.3. 官方網頁與書本","pathname":"/introduction/site_and_book","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"1. 導讀"}]},{"id":"-ME5zT113NEODkwoQU12","title":"1.4. Solaris/SunOS 程式設計師該注意的事","pathname":"/introduction/solaris","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"1. 導讀"}]},{"id":"-ME5zT12VA60VpZM5qek","title":"1.5. Windows 程式設計師該注意的事","pathname":"/introduction/windows","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"1. 導讀"}]},{"id":"-ME5zT13MzwECu4peQdH","title":"1.6. 來信原則","pathname":"/introduction/email","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"1. 導讀"}]},{"id":"-ME5zT14y4C1718jKvjO","title":"1.7. 鏡射站台（Mirroring）","pathname":"/introduction/mirror","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"1. 導讀"}]},{"id":"-ME5zT15xRczVfIIZMpd","title":"1.8. 譯者該注意的","pathname":"/introduction/translator","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"1. 導讀"}]},{"id":"-ME5zT16IopXgXBn3v_6","title":"1.9. 版權與散佈","pathname":"/introduction/license","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"1. 導讀"}]},{"id":"-ME5zT174IpH3cdlFFSv","title":"2. 何謂 Socket","pathname":"/02-what-is-socket","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT18sflX46u7Csu4","title":"2.1 兩種 Internet Sockets","pathname":"/02-what-is-socket/2-1-two-internet-sockets","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"2. 何謂 Socket"}]},{"id":"-ME5zT19-7XV6SAGygjY","title":"2.2 底層漫談與網路理論","pathname":"/02-what-is-socket/2-2-base-and-network-theory","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"2. 何謂 Socket"}]},{"id":"-ME5zT1ANgJ4PeAXjUxx","title":"3. IP address、結構與資料轉換","pathname":"/ipaddress_struct","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT1Bkb2csh_55y_d","title":"3.1. IPv4 與 IPv6","pathname":"/ipaddress_struct/ipv4_yu_ipv6","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"3. IP address、結構與資料轉換"}]},{"id":"-ME5zT1Cd2fb7We3UO4L","title":"3.1.1. Sub network (子網段)","pathname":"/ipaddress_struct/ipv4_yu_ipv6/sub-network","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"3. IP address、結構與資料轉換"},{"label":"3.1. IPv4 與 IPv6"}]},{"id":"-ME5zT1D8LXnxRzUEOkS","title":"3.1.2. Port Number（連接埠號碼）","pathname":"/ipaddress_struct/ipv4_yu_ipv6/port-number","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"3. IP address、結構與資料轉換"},{"label":"3.1. IPv4 與 IPv6"}]},{"id":"-ME5zT1EPdYAMelBTpMQ","title":"3.2. Byte Order（位元組順序）","pathname":"/ipaddress_struct/byte_order","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"3. IP address、結構與資料轉換"}]},{"id":"-ME5zT1FOsUX0cTr25nO","title":"3.3. 資料結構","pathname":"/ipaddress_struct/data_struct","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"3. IP address、結構與資料轉換"}]},{"id":"-ME5zT1GZi4chcop45sK","title":"3.4. IP 位址，續集","pathname":"/ipaddress_struct/ip_set","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"3. IP address、結構與資料轉換"}]},{"id":"-ME5zT1Hs8rY8Yv8wW5o","title":"3.4.1 Private Network","pathname":"/ipaddress_struct/ip_set/private-network","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"3. IP address、結構與資料轉換"},{"label":"3.4. IP 位址，續集"}]},{"id":"-ME5zT1Ix6OZdtAoWSUB","title":"4. 從 IPv4 移植為 IPv6","pathname":"/04-port-ipv4-to-ipv6","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT1JwcFARbj8nfLt","title":"5. System call 或 Bust","pathname":"/05-system-call-or-bust","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT1K5h5DEDqr_RlI","title":"5.1. getaddrinfo()－準備開始！","pathname":"/05-system-call-or-bust/5-1-getaddrinfo-start","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1Lt6FKUnUAwgw6","title":"5.2. socket()－取得 File Descriptor！","pathname":"/05-system-call-or-bust/5-2-socket--get-file-descriptor","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1MWwZwcalzD-Po","title":"5.3. bind()－ 我在哪個 port？","pathname":"/05-system-call-or-bust/5-3-bind--what-port-am-i-on","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1N5MLCxiTJ2sB6","title":"5.4. connect()，嘿！你好。","pathname":"/05-system-call-or-bust/5connect","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1OolUybMJg4ktT","title":"5.5. listen()－有人會呼叫我嗎？","pathname":"/05-system-call-or-bust/5listen","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1P35DC7xBUN5US","title":"5.6. accept()－ 謝謝你 call 3490 port","pathname":"/05-system-call-or-bust/5accept","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1QjuoAn0Ta_MpR","title":"5.7. send() 與 recv()－ 寶貝，我們來聊天！","pathname":"/05-system-call-or-bust/5send","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1Rzp50bhKBKdaZ","title":"5.8. sendto() 與 recvfrom()－ 來點 DGRAM","pathname":"/05-system-call-or-bust/5sendto","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1SiVgxKZiKZHKG","title":"5.9. close() 與 shutdown()－ 你消失吧！","pathname":"/05-system-call-or-bust/5close","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1TlO1CUXTsR-VJ","title":"5.10. getpeername()－你是誰？","pathname":"/05-system-call-or-bust/5getpeername","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1U8Qg3NTe6F404","title":"5.11. gethostname()－我是誰？","pathname":"/05-system-call-or-bust/5gethostname","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"5. System call 或 Bust"}]},{"id":"-ME5zT1V9v7e3UwTCyHJ","title":"6. Client-Server 基礎","pathname":"/client-server_basic","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT1WuBtIiI27n2HU","title":"6.1. 簡單的 Stream Server","pathname":"/client-server_basic/stream_server","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"6. Client-Server 基礎"}]},{"id":"-ME5zT1XKDP4nbrnPGy7","title":"6.2. 簡單的 Stream Client","pathname":"/client-server_basic/stream_client","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"6. Client-Server 基礎"}]},{"id":"-ME5zT1Ynf2NL7Vco0Oy","title":"6.3. Datagram Sockets","pathname":"/client-server_basic/datagram_sockets","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"6. Client-Server 基礎"}]},{"id":"-ME5zT1ZzP0uYt8qisj3","title":"7. 進階技術","pathname":"/advanced_tech","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT1_f_GbmWcZ6n8v","title":"7.1. Blocking（阻塞）","pathname":"/advanced_tech/blocking","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"7. 進階技術"}]},{"id":"-ME5zT1amnCUtUZFrmcx","title":"7.2. select()：同步 I/O 多工","pathname":"/advanced_tech/7selec","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"7. 進階技術"}]},{"id":"-ME5zT1bwmcNd2QuO_1w","title":"7.3. 不完整傳送的後續處理","pathname":"/advanced_tech/7incomplete","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"7. 進階技術"}]},{"id":"-ME5zT1cfxsoZU3voWK9","title":"7.4. Serialization：如何封裝資料","pathname":"/advanced_tech/7serialization","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"7. 進階技術"}]},{"id":"-ME5zT1dFxBueeuCwMRb","title":"7.5. 資料封裝","pathname":"/advanced_tech/7_encap","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"7. 進階技術"}]},{"id":"-ME5zT1eU2z06PrdRT6U","title":"7.6. 廣播封包：Hello World！","pathname":"/advanced_tech/7broadcast","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"7. 進階技術"}]},{"id":"-ME5zT1fD97ATU2aX721","title":"8. 常見的問題","pathname":"/faq","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT1gDIIiIyP3Rlx4","title":"9. Man 使用手冊","pathname":"/man","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT1hpSNZhKFuFqME","title":"9.1. accept()","pathname":"/man/accept","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1iw83FndrVHxoD","title":"9.2. bind()","pathname":"/man/bind","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1jZynS2ZJrKffb","title":"9.3. connect()","pathname":"/man/connect","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1kgmZyMQjd5S0F","title":"9.4. close()","pathname":"/man/close","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1lxJUD_vIlR9mL","title":"9.5. getaddrinfo(), freeaddrinfo(), gai_strerror()","pathname":"/man/getaddrinfo-_freeaddrinfo-_gaistrerror","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1mx9N_1n1IrpO8","title":"9.6. gethostname()","pathname":"/man/gethostname","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1nLXtksgMSiAlD","title":"9.7. gethostbyname(), gethostbyaddr()","pathname":"/man/gethostbyname-_gethostbyaddr","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1oWzBSZtoPGDe7","title":"9.8. getnameinfo()","pathname":"/man/getnameinfo","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1pDIIA0fJsIysU","title":"9.9. getpeername()","pathname":"/man/getpeername","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1qF9PsGqCvtr2n","title":"9.10. errno","pathname":"/man/errno","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1rfwuySHrDV003","title":"9.11. fcntl()","pathname":"/man/fcntl","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1sGaOMPUg0nrR6","title":"9.12. htons(), htonl(), ntohs(), ntohl()","pathname":"/man/htons-_htonl-_ntohs-_ntohl","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1t-ZQPe4hM3ZGB","title":"9.13. inet_ntoa(), inet_aton(), inet_addr","pathname":"/man/inetntoa_-_inetaton_-_inetaddr","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1uSVHvOQYCNgPe","title":"9.14. inet_ntop(), inet_pton()","pathname":"/man/inetntop_-_inetpton","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1vDgdSYOH4iMIV","title":"9.15. listen()","pathname":"/man/listen","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1w7-phdwsYbr-Z","title":"9.16. perror(), strerror()","pathname":"/man/perror-_strerror","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1xpYOLZiQNcWUD","title":"9.17. poll()","pathname":"/man/poll","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1yE0BfRrc7pkUN","title":"9.18. recv(), recvfrom()","pathname":"/man/recv-_recvfrom","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT1zpnXHsgV0HO1O","title":"9.19. select()","pathname":"/man/select","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT2-RFF2k2UTbtrX","title":"9.20. setsockopt(), getsockopt()","pathname":"/man/setsockopt-_getsockopt","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT20pRN8mQeIAgzD","title":"9.21. send(), sendto()","pathname":"/man/send-_sendto","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT21-hnjoY3TqgJD","title":"9.22. shutdown()","pathname":"/man/shutdown","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT229PzKdVzbGE3p","title":"9.23. socket()","pathname":"/man/socket","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT231vgu3mI28CKO","title":"9.24. struct sockaddr and pals","pathname":"/man/struct_sockaddr_and_pals","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"9. Man 使用手冊"}]},{"id":"-ME5zT24sYT0IKRtPWcg","title":"10. 參考資料","pathname":"/reference","siteSpaceId":"sitesp_UQGav","description":""},{"id":"-ME5zT250NoGgVhAbGsn","title":"10.1. 書籍","pathname":"/reference/ref_books","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"10. 參考資料"}]},{"id":"-ME5zT26In1ecyFdX3kY","title":"10.2. 網站參考資料","pathname":"/reference/ref_webs","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"10. 參考資料"}]},{"id":"-ME5zT27KkIE2IMEwfSi","title":"10.3. RFC","pathname":"/reference/rfc","siteSpaceId":"sitesp_UQGav","description":"","breadcrumbs":[{"label":"10. 參考資料"}]},{"id":"-ME5zT28gzExz_OtAmdF","title":"11. 原著誌謝","pathname":"/original_comment","siteSpaceId":"sitesp_UQGav","description":""}]}