經(jīng)過(guò)多年的網(wǎng)絡(luò)編程實(shí)踐之后,個(gè)人覺(jué)得初學(xué)網(wǎng)絡(luò)編程者可以從以下幾個(gè)步驟開(kāi)展:

    1)下載一個(gè)可以互動(dòng)的學(xué)習(xí)工具,通過(guò)這個(gè)與這個(gè)工具互動(dòng),我們可以及時(shí)的學(xué)到每個(gè)api的結(jié)果如果。我個(gè)人強(qiáng)烈推薦一個(gè)互動(dòng)好工具,即python,下載地址http://www.python.org 對(duì)于有c/c++或java基礎(chǔ)的朋友通過(guò)一兩個(gè)禮拜的時(shí)間就可以上手了,另外個(gè)人建議初學(xué)者可以學(xué)習(xí)dive into python
      
    2)掌握網(wǎng)絡(luò)編程中會(huì)用到的幾個(gè)基本概念和內(nèi)涵,比如IP地址,port號(hào),socket等

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

    4)花幾天時(shí)間學(xué)習(xí)socket api集,api集可以分為下面幾大類(lèi):
       創(chuàng)建   socket bind listen accept
       收發(fā)   read/recv/recvfrom  write/send/sendto  
       關(guān)閉   close shutdown
       參數(shù)   getsockopt/setsockopt
       地址   gethostbyaddr getaddrbyhost,...

       在學(xué)習(xí)這些api時(shí)候,可以先關(guān)注在函數(shù)功能,參數(shù)意義上

    5)結(jié)合python互動(dòng)平臺(tái),實(shí)踐socket api的用法,比如socket函數(shù)怎么使用,bind怎么使用等等。在互動(dòng)過(guò)程中,我們可以變換參數(shù),看看調(diào)用結(jié)果如何。比如,
       創(chuàng)建一個(gè)tcp socket的語(yǔ)法如下:
       socket(AF_INET,SOCK_STREAM)

       創(chuàng)建一個(gè)udp socket的語(yǔ)法如下:
       socket(AF_INET,SOCK_DGRAM)

    6)學(xué)習(xí)socket server端編程實(shí)現(xiàn)簡(jiǎn)單規(guī)約比如echo,time等,然后通過(guò)cmd中的telnet來(lái)測(cè)試。

    7)學(xué)習(xí)I/O模型,比如阻塞、非阻塞和反應(yīng)式(select,poll,WaitForMultipleObject)等

    8)學(xué)習(xí)Richard Stevens的《Unix網(wǎng)絡(luò)編程》,深入學(xué)習(xí)其中的api原理以及服務(wù)端設(shè)計(jì)原理,并通過(guò)代碼編寫(xiě)。

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

    10)學(xué)習(xí)設(shè)計(jì)模式、操作系統(tǒng)知識(shí)比如線(xiàn)程、進(jìn)程、同步等。