1. 程式人生 > >學習網路程式設計的十個步驟

學習網路程式設計的十個步驟

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

    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)學習設計模式、作業系統知識比如執行緒、程序、同步等。