嵌入式網(wǎng)絡那些事

出版時間:2012-9  出版社:朱升林 中國水利水電出版社 (2012-09出版)  作者:朱升林  頁數(shù):473  
Tag標簽:無  

前言

  前言:  終于有了繼續(xù)碼字的機會。一年前在網(wǎng)上發(fā)布了電子版《LwIP協(xié)議棧源碼詳解--TCP/IP協(xié)議的實現(xiàn)》一書,也因此結識了許多LwIP應用及嵌入式網(wǎng)絡編程的愛好者,他們之中有的是學生,正在竭力規(guī)劃著自己的未來;有的是IT公司職員,正努力完成Boss交給的項目;更有創(chuàng)業(yè)者,希望在嵌入式網(wǎng)絡方向賺下人生的第一桶金。但不管怎么樣,很高興有這么多人在關心和使用著LwIP,關注著嵌入式網(wǎng)絡的發(fā)展未來。電子版書籍發(fā)布至今,受到了諸多讀者的肯定和歡迎,筆者也收到了很多讀者郵件,大部分是關于協(xié)議棧移植、應用編程等方面的問題。筆者也與很多讀者在網(wǎng)上有過面對面的交流,一直堅信,相互學習與探討才是進步的關鍵,他們的困惑與學習渴望讓我覺得自己應該做更多的事情。其實網(wǎng)絡電子版并不完善,一次在和一個讀者偶然的聊天中,有了將這本書完善并出版的想法,“有價格的東西才會更有價值”,你可能會覺得這句話有錯誤,但不管你信不信,我是信了(雖然馬克思經(jīng)濟學理論不是這樣說的)。在讀者、朋友及家人的鼓勵和支持下,筆者最終將想法付諸于實踐,一是為完成以前偷懶沒有完成的任務,二是將廣大讀者使用過程中遇到的問題總結出來,以供大家借鑒。  寫本書的目的可以歸納為三點:第一,給需要使用LwIP的人一個借鑒和解決問題的方法,這也是當初寫電子版的初衷;第二,也是最基礎的,寫給那些需要學習TCP/IP的同學,TCP/IP的重要性就不在這里多說了,遙想筆者當年畢業(yè)找工作之季,輾轉來回于各大公司的招聘面試場所,TCP/IP真的是各個面試官最青睞的問題,筆者也恰好因為在這方面有著獨到的理解,因此順利拿下了國內(nèi)外眾多知名企業(yè)的offer,所以本書也想告訴那些正在努力的同學,學習TCP/IP是絕對值得的,這是一條康莊大道;第三,也是最重要的,嵌入式網(wǎng)絡當然離不開實踐,本書力求在講網(wǎng)絡協(xié)議之前,給學習嵌入式的同學一個基礎的、易上手的嵌入式學習過程,在此之后,讀者能在實驗平臺上實際運行、調試網(wǎng)絡應用程序,更可以修改協(xié)議棧內(nèi)核,你改的每一行代碼都能在實驗板上看出實際效果?! 【W(wǎng)絡編程大神們可以繞道了,這里沒有IPsec、沒有SSL、沒有并發(fā)服務器、沒有每秒上億次的服務請求,我們玩的是低端玩藝兒;神秘黑客們也可以繞道了,這里沒有系統(tǒng)漏洞、沒有文件系統(tǒng)、沒有賬號、玩不轉木馬,您都不屑于和我們較真。本書的使用者定位在嵌入式初學者、網(wǎng)絡初學者以及對LwIP應用有興趣或疑問的同學,你們一定可以在本書中找到想要的東西。  本書背景  TCP/IP技術是目前最流行的IT技術之一,也是當代互聯(lián)網(wǎng)及相關技術應用、發(fā)展的基石。近年來,TCP/IP技術在各大高校儼然已成為學習和研究的熱點,而另一方面,TCP/IP知識也成了各IT企業(yè)招聘時關注的重點問題。對于廣大TCP/IP初學者來說,要真正掌握并精通TCP/IP協(xié)議其實是有難度的:首先,TCP/IP是個非常龐大的協(xié)議族,其源代碼一般只存在于各個大型操作系統(tǒng)內(nèi)核中,協(xié)議的整體結構對于使用者來說不可見,學習者只能使用系統(tǒng)內(nèi)部提供的API完成網(wǎng)絡編程功能,但對協(xié)議內(nèi)部的實現(xiàn)細節(jié)并不明了,這樣TCP/IP的學習者只能停留在上層應用,如Socket編程的層次,而事實上,了解協(xié)議內(nèi)部運作細節(jié)是編寫高效可靠應用程序的基礎;其次,目前市場上針對TCP/IP的書籍較少,而與TCP/IP協(xié)議內(nèi)部機制相關的實驗書籍就更加缺乏了,讀者只能從書本上學到一些關于TCP/IP的基礎理論知識,但很難將這些理論用于實際編程實踐中,因為系統(tǒng)內(nèi)核對于讀者來說并不可見?! ∧壳?,嵌入式產(chǎn)品連入互聯(lián)網(wǎng)已成了越來越多企業(yè)關注的熱點,這使得在嵌入式產(chǎn)品上移植TCP/IP協(xié)議成為一種必然的趨勢。LwIP是應用于嵌入式領域的一款開源TCP/IP協(xié)議,它的實現(xiàn)同BSD的實現(xiàn)有很大的相似性,可以作為TCP/IP協(xié)議的典型代表,它的功能完備,除了實現(xiàn)TCP/IP的基本通信功能外,其新版本還支持DNS、SNMP、DHCP、IGMP等高級應用功能。當前網(wǎng)絡上關于LwIP的討論很多,但市場上卻鮮見相關書籍?! ”緯攸c  理論與實踐結合,是本書編寫的一個重要出發(fā)點,不但讓讀者掌握TCP/IP理論知識,而且讓讀者通過實驗深入地理解并運用這些知識,達到學以致用的目的。首先,整個協(xié)議棧對讀者來說全部可見,這樣讀者能對TCP/IP協(xié)議有宏觀的把握,擯棄掉TCP/IP以往神秘的面紗;本書以網(wǎng)絡數(shù)據(jù)包在協(xié)議棧內(nèi)部的遞交順序為編寫導向,思路明顯,條理清楚,語言精簡幽默,更利于讀者對TCP/IP協(xié)議基本知識的理解;最后,本書內(nèi)容大部分建立在筆者開發(fā)經(jīng)驗之上,其中包括了很多LwIP在實際應用中遇到的問題及其解決方法,這對大部分剛接觸LwIP的嵌入式開發(fā)人員來說,具有很強的指導意義?! 「爬▉碇v,本書具有如下特點:  延續(xù)了電子版的寫作手法,輕松詼諧的語言、簡單直白的講解能讓讀者擺脫閱讀時的枯燥感覺,技術學習也可以很輕松。  協(xié)議與實現(xiàn)的完美結合。著眼于TCP/IP基本理論,以LwIP源代碼為基礎,全面講解TCP/IP協(xié)議的原理與具體實現(xiàn),由于協(xié)議棧全部源代碼對讀者可見,因此TCP/IP不再神秘?! ±碚撆c實踐并重。對各層協(xié)議盡量提供實驗例程或測試方法,簡單的實驗搭建環(huán)境,讀者能直觀感受到各層協(xié)議在嵌入式設備組網(wǎng)過程中的實際應用,每個案例的開發(fā)步驟都以通俗易懂的語言闡述,并穿插必要的圖片和表格,學習TCP/IP不再是紙上談兵?! ∧康拿鞔_,實用性強。以嵌入式設備組網(wǎng)為目的,結合了筆者的大量實際開發(fā)經(jīng)驗,從系統(tǒng)啟動代碼編寫到操作系統(tǒng)移植,從LwIP協(xié)議棧移植到網(wǎng)絡應用程序設計,內(nèi)容由淺入深,知識點覆蓋全面,特別適合于嵌入式初學人員。  LwIP協(xié)議棧全部用C寫成,所有源代碼對讀者可見,讀者可以宏觀把握整個協(xié)議的代碼組織結構。在本書中,通過在實驗板上移植、使用協(xié)議棧,讀者可以清楚地知道TCP/IP協(xié)議內(nèi)部各個機制的實現(xiàn)方法以及不同參數(shù)設置對協(xié)議棧內(nèi)核性能的影響,例如:如何自行配置TCP發(fā)送超時間隔與重發(fā)次數(shù)以滿足特定場合的需求,又如可否根據(jù)實際使用情況更改TCP狀態(tài)機以提高內(nèi)核效率,再如可否自行構建靜態(tài)ARP緩存表以提高協(xié)議棧響應效率,等等。通過實驗,讀者可以清楚地看到整個協(xié)議的運行過程,加深對協(xié)議的理解?! 〗M織結構  本書以開源TCP/IP協(xié)議棧--LwIP的源代碼為基礎,詳細為讀者講解TCP/IP協(xié)議的內(nèi)部各層結構與實現(xiàn)細節(jié),既包括ARP、ICMP、IGMP、IP、UDP、TCP等基本協(xié)議知識,也包括DHCP、DNS等高級應用知識,以LwIP為起點學習TCP/IP,將為廣大讀者各方面的學習創(chuàng)造捷徑。同時,LwIP代碼組織和實驗平臺搭建簡單,讀者可以方便地進行協(xié)議棧內(nèi)部的相關實驗,通過對平臺搭建過程的學習,讀者也可以了解到許多嵌入式領域入門基礎知識,如匯編程序、C編程基礎、編譯鏈接原理、嵌入式處理器、內(nèi)存管理、操作系統(tǒng)、任務管理、任務通信機制等?! CP/IP技術是互聯(lián)網(wǎng)技術發(fā)展的基礎,在各軟硬件IT企業(yè)招聘面試上,TCP/IP的知識成了面試官青睞的問題,對于廣大學子來說,精通TCP/IP相關知識,無疑將為自己打開一道成功擇業(yè)的大門。但目前很多學者想學習TCP卻無處下手,這成了許多初學者面臨的問題,通過本書,不論是從宏觀還是細節(jié)上,讀者都可以對TCP/IP協(xié)議有很好的把握。另一方面,嵌入式設備組網(wǎng)技術是目前流行的技術,LwIP由于開源免費、功能齊全、性能優(yōu)越等特點成了嵌入式網(wǎng)絡領域使用的熱點,本書將從裸機出發(fā),向讀者講解網(wǎng)絡協(xié)議棧移植過程以及應用編程細節(jié),同時也包括了一些開發(fā)過程中常見的各種問題及解決方法,因此,對LwIP應用開發(fā)者來說,本書將是一本重要的指導手冊?! 【幷吲c致謝  本書由朱升林著,粟思科審校。最后,筆者想感謝一年多以來一直陪伴和幫助我的人,沒有你們的幫助和付出,這本書不會這么順利的完成,因為你們的存在,使得這段時光更加珍貴。同時參與本書編寫工作的人員還有:王治國、鐘曉林、王娟、胡靜、楊龍、張成林、方明、王波、陳小軍、雷曉、李軍華、陳曉云、方鵬、龍帆、劉亞航、凌云鵬、陳龍、曹淑明、徐偉、楊陽、張宇、劉挺、單琳、吳川、李鵬、李巖、朱榕、陳思濤和孫浩,在此一并表示感謝?! 「兄x對本書電子版提出過改進建議和支持的眾多網(wǎng)友朋友,感謝笑迎冬風,感謝sailing,感謝關海山,還有2K100、Aimar、M刀、WISCO……,還有許多不能在這里一一列出名字的網(wǎng)友,謝謝你們的支持和肯定,與大家的探討也讓我學到了很多東西?! 「兄x我的父母和親友們,是你們的寬容和細心幫我克服了生活中的許多困難和難題,你們的默默支持和付出是我完成此書的最大動力。  配套服務  我們?yōu)樽x者和用戶盡心服務,圍繞協(xié)議、產(chǎn)品和項目市場,探討應用與發(fā)展,發(fā)掘熱點與重點;開展相關教學工作。TCP/IP協(xié)議俱樂部QQ:183090495,電子郵件bojiakeji@tom.com,歡迎TCP/IP協(xié)議愛好者和用戶聯(lián)系?! ∮捎谧髡咚剿?,網(wǎng)絡技術也日新月異,本書難免存在錯誤和不妥之處,懇請廣大讀者批評指證。共同探討,始終是學習的一種高效方式,值得指出的是,本書最后一節(jié)的LwIP常見問題與解決方法就得益于眾多網(wǎng)友的反饋,這里再次對他們表示感謝。

內(nèi)容概要

  《嵌入式網(wǎng)絡那些事:LwIP協(xié)議深度剖析與實戰(zhàn)演練》面向網(wǎng)絡TCP/IP協(xié)議初學者以及大量嵌入式網(wǎng)絡開發(fā)人員,從當下流行的嵌入式網(wǎng)絡協(xié)議棧LwIP的源代碼入手,詳細講解TCP/IP協(xié)議的各層機制及其實現(xiàn)原理。同時,通過搭建簡單的實驗環(huán)境,還詳細闡述LwIP在嵌入式設備組網(wǎng)過程中的移植過程、應用編程案例、編程框架、注意事項等?! ”緯梢宰鳛門CP/IP學習者的快速入門及精通的指導書籍,配以簡易的實驗平臺及專門的實驗例程,讀者可以輕松學習TCP/IP協(xié)議內(nèi)的各種機制,通過實驗驗證,達到理論與實踐結合的目的;對于嵌入式初學者來說,本書具有相關的實驗平臺,通過對實驗平臺的學習與使用,初學者能快速實現(xiàn)嵌入式入門;最后,本書可以作為廣大嵌入式網(wǎng)絡開發(fā)人員的參考手冊。

作者簡介

朱升林,非著名碼農(nóng),法號及網(wǎng)名“老衲五木”,風靡網(wǎng)絡的電子書《LwIP協(xié)議棧源碼詳解——TCP/IP協(xié)議的實現(xiàn)》作者。對TCP/IP有豐富的實踐經(jīng)驗和深入獨到的理解,長期從事物聯(lián)網(wǎng)熱點技術如ZigBee,Wifi,HFRFID,UHF RFID的研究與應用。目前在國內(nèi)某知名通信公司從事軟件研發(fā)工作。

書籍目錄

本書之What&Why 第1章故事前傳 1.1背景知識 1.1.1嵌入式網(wǎng)絡概述 1.1.2寫作背景 1.1.3幾個疑問 1.2TCP/lP掃盲班 1.2.1OSI模型 1.2.2TCP/IP協(xié)議 1.2.3OSI模型VSTCP/IP模型 l.2.4嵌入式TcP/IP協(xié)議棧 l.3旅行集結號 1.3.1實驗環(huán)境說明 1.3.2本書內(nèi)容概述 1.3.3一起出發(fā) 第2章有備而無患 2.1傳說中的ARM微處理器 2.1.1背景知識 2.1.2存儲器組織結構 2.1.3指令系統(tǒng) 2.1.4數(shù)據(jù)類型與存儲格式 2.1.5處理器狀態(tài)與處理器模式 2.1.6寄存器組織 2.1.7異常處理 2.2S3C344BOX初體驗 2.2.1簡介 2.2.2存儲管理器 2.2.3中斷控制器 2.2.4其他模塊 2.3ARM匯編真經(jīng) 2.3.1簡介 2.3.2ARM指令集編碼格式 2.3.3ARM尋址方式 2.3.4ARM指令集簡介 2.3.5ARM匯編語言 第3章讓板子跑起來 3.1ARM開發(fā)工具 3.1.1ADS簡介 3.1.2ARM匯編器 3.1.3ARM編譯器 3.1.4ARM連接器 3.2程序的調試 3.2.1幾種調試方式 3.2.2AXD調試器 3.2.3ARMulator的使用 3.3編寫啟動代碼 3.3.1開發(fā)板結構 3.3.2啟動代碼講解 3.3.3幾個測試程序 第4章快馬加鞭 4.1嵌入式實時操作系統(tǒng) 4.1.1概述 4.1.2uc/OS—Ⅱ的文件結構 4.1.3uc/OS—Ⅱ中的任務 4.1.4就緒任務的管理 4.1.5任務堆棧 4.2移植uc/OS—Ⅱ實時操作系統(tǒng) 4.2.1概述 4.2.2編寫OS CPU.H 4.2.3 編寫OS CPU C.C 4.2.4編寫OS CPU A.S 4.3測試程序 4.3.1 系統(tǒng)時鐘 4.3.2第一個測試程序 4.3.3第二個測試程序 第5章無操作系統(tǒng)模擬層LwIP的移植 5.1 LwIP綜述 5.1.1 簡介 5.1.2用SI閱讀源代碼 5.2移植工作 5.2.1移植頭文件 5.2.2 RTL8019AS網(wǎng)卡 5.2.3編寫網(wǎng)卡驅動程序 5.3測試程序 5.3.1協(xié)議棧初始化 5.3.2數(shù)據(jù)包的查詢接收 5.3.3數(shù)據(jù)包的中斷接收 5.3.4一個簡單的TCP服務器 5.3.5移植小結 第6章動態(tài)內(nèi)存管理 6.1背景知識 6.1.1內(nèi)存管理概述 6.1.2常見內(nèi)存分配策略 6.2動態(tài)內(nèi)存池 6.2.1數(shù)據(jù)結構描述 6.2.2函數(shù)實現(xiàn) 6.3動態(tài)內(nèi)存堆 6.3.1數(shù)據(jù)結構描述 6.3.2 函數(shù)實現(xiàn) 6.4其他內(nèi)存分配策略 第7章數(shù)據(jù)包管理 7.1 預備知識 7.1.1 LwIP的分層特點 7.1.2協(xié)議進程模型 7.2數(shù)據(jù)包管理 7.2.1數(shù)據(jù)包結構pbuf 7.2.2 pbuf的類型 7.2.3數(shù)據(jù)包申請函數(shù) 7.2.4數(shù)據(jù)包釋放函數(shù) 7.2.5其他數(shù)據(jù)包操作函數(shù) 第8章網(wǎng)絡接口管理 8.1 引言 8.2網(wǎng)絡接口結構 8.2.1 數(shù)據(jù)結構 8.2.2函數(shù)實現(xiàn) 8.3環(huán)回接口 8.3.1相關函數(shù) 8.3.2實驗程序 第9章ARP協(xié)議 9.1 ARE協(xié)議簡介 9.1.1物理地址與網(wǎng)絡地址 9.1.2 ARP協(xié)議的本質 9.2數(shù)據(jù)結構 9.2.1 ARP表 9.2.2 ARP報文 9.3 ALRP層數(shù)據(jù)包輸入 9.3.1 以太網(wǎng)數(shù)據(jù)包遞交 9.3.2 APE數(shù)據(jù)包處理 9.3.3 ARP攻擊 9.3.4 ARP緩存表的更新 9.4 ARP層數(shù)據(jù)包輸出 9.4.1 ARP層數(shù)據(jù)處理總流程 …… 第10章網(wǎng)際協(xié)議 第11章網(wǎng)際控制報文協(xié)議 第12章用戶數(shù)據(jù)報協(xié)議 第13章傳輸控制協(xié)議 第14章移植操作系統(tǒng)模擬層 第15章用戶編程接口 第16章最后的戰(zhàn)役 參考文獻

章節(jié)摘錄

版權頁:   插圖:   對于一個路由器或主機,當它接收到一個數(shù)據(jù)包時,若要判斷發(fā)送數(shù)據(jù)包的源主機與自己是否處于同一個網(wǎng)絡內(nèi),可以將源IP地址與子網(wǎng)掩碼進行與運算,即得到源主機所處的網(wǎng)絡地址。同樣,將它自己的IP地址與子網(wǎng)掩碼進行與運算,得到自己所處的網(wǎng)絡地址,如果這兩個網(wǎng)絡地址相同,則可以判斷出發(fā)送方與它自己處于同一個網(wǎng)絡。注意,子網(wǎng)掩碼不能單獨存在,它必須結合IP地址一起使用,子網(wǎng)掩碼只有一個作用,就是將某個IP地址劃分為網(wǎng)絡號(包括子網(wǎng)號)和主機號兩部分。 10.1.5網(wǎng)絡地址轉換(NAT) 隨著Internet的迅速發(fā)展,IP地址短缺現(xiàn)象已成為一個十分突出的問題。在ISP那里,即使是擁有幾百臺計算機的大型企業(yè),當他們申請IP地址時,得到的也不過只有幾個或十幾個IP地址。 顯然,這樣少的IP地址根本無法滿足企業(yè)內(nèi)部大量用戶的需求,為了解決這個問題,出現(xiàn)了多種方案。其中,最流行也是最有效的就是目前使用的局域網(wǎng)技術,事實上,局域網(wǎng)本質上屬于專用網(wǎng)的一種類型,專用網(wǎng)被用在機構內(nèi)部使用,它允許機構內(nèi)部訪問共同的資源,但卻對外部網(wǎng)絡屏蔽了內(nèi)部網(wǎng)絡的結構和主機信息,大大提高了內(nèi)部主機的安全性。通常在一個企業(yè)能夠申請到的合法網(wǎng)絡IP地址很少,但其內(nèi)部網(wǎng)絡用戶很多的情況下,使用專用網(wǎng)可以實現(xiàn)多個用戶同時公用一個合法IP地址與外部網(wǎng)絡進行通信。在專用網(wǎng)內(nèi)部,用戶可以使用如表10.2所示的專用IP地址進行相互間的通信。 我們用以太網(wǎng)局域網(wǎng)為例,看看這個專用網(wǎng)是如何實現(xiàn)多個用戶公用一個IP地址與外部網(wǎng)絡進行通信的,這里涉及一個很重要的技術,叫做網(wǎng)絡地址轉換(NAT)。通常,企業(yè)內(nèi)部使用的局域網(wǎng)路由器都是具有NAT功能的,具有NAT功能的路由器至少要有一個內(nèi)部端口和一個外部端口,內(nèi)部端口是路由器為了與局域網(wǎng)內(nèi)的用戶通信而使用的,它使用一個內(nèi)部專用IP地址,例如常見的路由器內(nèi)部IP地址可以為192.168.1.1;外部端口是路由器用來與外部網(wǎng)絡通信用的,它通常具有一個有效的IP地址,假設為一個有效的C類地址222.197.179.21。 NAT的功能可簡單描述為:當內(nèi)部網(wǎng)絡用戶連接互聯(lián)網(wǎng)時,NAT將用戶的內(nèi)部IP地址轉換成一個外部公共IP地址,反之,數(shù)據(jù)從外部返回時,NAT將目的地址替換成用戶的內(nèi)部IP地址。 NAT實現(xiàn)的方式有很多種,但是其中使用最廣泛也是最有效的方式稱為端口多路復用,它基于TCP或UDP協(xié)議端口號以及IP地址來實現(xiàn)NAT功能。

編輯推薦

《嵌入式網(wǎng)絡那些事:LwIP協(xié)議深度剖析與實戰(zhàn)演練》可以作為TCP/IP學習者的快速入門及精通的指導書籍,配以簡易的實驗平臺及專門的實驗例程,讀者可以輕松學習TCP/IP協(xié)議內(nèi)的各種機制,通過實驗驗證,達到理論與實踐結合的目的;對于嵌入式初學者來說,《嵌入式網(wǎng)絡那些事:LwIP協(xié)議深度剖析與實戰(zhàn)演練》具有相關的實驗平臺,通過對實驗平臺的學習與使用,初學者能快速實現(xiàn)嵌入式入門;最后,《嵌入式網(wǎng)絡那些事:LwIP協(xié)議深度剖析與實戰(zhàn)演練》可以作為廣大嵌入式網(wǎng)絡開發(fā)人員的參考手冊。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    嵌入式網(wǎng)絡那些事 PDF格式下載


用戶評論 (總計13條)

 
 

  •   電子版不太詳細,這書還行。。。
  •   書還沒有看,內(nèi)容不評,就書的紙張質量來說還不錯的。
  •   封面有破損,扉頁底部開膠。第一次在amazon以外的網(wǎng)站買書,太失望了。
  •   寫的挺生動挺詳細,值得購買
  •   很不錯,不過可惜我用的不是三星的芯片
  •   還不錯深入淺出,內(nèi)容豐富
  •   水不小心滴了一滴上去,磨一下竟然把字都磨掉了。。
  •   質量很好,書很厚額!
  •   內(nèi)容很詳實,沒有廢話,對學習嵌入式網(wǎng)絡協(xié)議棧有很大的幫助,從LwIP無操作系統(tǒng)的移植到有操作系統(tǒng)的移植包括測試方法,源代碼等等非常詳實的一本書。
  •   內(nèi)容:不錯,講的很詳細,適合初學者,我覺得要是能深入擴展一些應用協(xié)議部分那就更好了,比如CGI包裝:包裝太單薄,一個嶄新的書,到手書皮都破了個大洞,膠背頭部像砸過,不好知道是不是快遞原因??偟倪€算滿意吧
  •   移植Lwip
  •   小說化撰寫,嵌入式網(wǎng)絡太大了
  •   挺不錯的奧
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7