學習網絡的十個步驟

學習網絡編程的十個步驟

    經過多年的網絡編程實踐之後,個人覺得初學網絡編程者可以從以下幾個步驟開展:

    1)下載一個可以互動的學習工具,通過這個與這個工具互動,我們可以及時的學到每個api的結果如果。我個人強烈推薦一個互動好工具,即python,下載地址http://www.python.org 對於有c/c++或java基礎的朋友通過一兩個禮拜的時間就可以上手了,另外個人建議初學者可以學習dive into python
       
    2)掌握網絡編程中會用到的幾個基本概念和內涵,比如IP地址,port號,socket等

    3)記住和消化網絡編程C/S模型,把server和client端編程的常用模式理解和消化

    4)花幾天時間學習socket api集,api集可以分爲下面幾大類:
       創建   socket bind listen accept
       收發   read/recv/recvfrom  write/send/sendto   
       關閉   close shutdown
       參數   getsockopt/setsockopt
       地址   gethostbyaddr getaddrbyhost,...

       在學習這些api時候,可以先關注在函數功能,參數意義上

    5)結合python互動平臺,實踐socket api的用法,比如socket函數怎麼使用,bind怎麼使用等等。在互動過程中,我們可以變換參數,看看調用結果如何。比如,
       創建一個tcp socket的語法如下:
       socket(AF_INET,SOCK_STREAM)

       創建一個udp socket的語法如下:
       socket(AF_INET,SOCK_DGRAM)

    6)學習socket server端編程實現簡單規約比如echo,time等,然後通過cmd中的telnet來測試。

    7)學習I/O模型,比如阻塞、非阻塞和反應式(select,poll,WaitForMultipleObject)等

    8)學習Richard Stevens的《Unix網絡編程》,深入學習其中的api原理以及服務端設計原理,並通過代碼編寫。

    9)下載高性能網絡編程框架twisted,筆者強烈推薦,它將使你的網絡編程效率提高10倍以上。

    10)學習設計模式、操作系統知識比如線程、進程、同步等。


ps: 以上轉載,當言出必行。軟件開發行業,也像武林,積累量變到質變,經歷手中有劍心無劍,手中有劍心有劍,手中無劍心有劍,手中無劍心無劍的心血路程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章