網(wǎng)絡(luò)編程基礎(chǔ)

網(wǎng)絡(luò)編程基礎(chǔ)

ID:20599373

大?。?8.82 KB

頁數(shù):11頁

時間:2018-10-14

網(wǎng)絡(luò)編程基礎(chǔ)_第1頁
網(wǎng)絡(luò)編程基礎(chǔ)_第2頁
網(wǎng)絡(luò)編程基礎(chǔ)_第3頁
網(wǎng)絡(luò)編程基礎(chǔ)_第4頁
網(wǎng)絡(luò)編程基礎(chǔ)_第5頁
資源描述:

《網(wǎng)絡(luò)編程基礎(chǔ)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、網(wǎng)絡(luò)編程基礎(chǔ)一、關(guān)于語言、編譯器及系統(tǒng)?????我們知道,在計算機(jī)里面進(jìn)行程序設(shè)計至少需要掌握一種程序設(shè)計語言。常見的程序設(shè)計語言包括C/C++、ASM、BASIC、Delphi、?Perl等,你隨便根據(jù)興趣去學(xué)習(xí)一種語言都可以實(shí)現(xiàn)程序設(shè)計這個目的,這些語言并沒有誰比誰更好的問題(這是一個理解問題,實(shí)際上一些語言應(yīng)該說比一些語言更先進(jìn),比如可以說C++比C更先進(jìn),但不能說誰比誰好,每一種語言都是優(yōu)秀思想的結(jié)晶,我這樣理解),只是它們的側(cè)重點(diǎn)不同。比如,ASM、C比其他語言更接近系統(tǒng)的底層,使得它們適合做系統(tǒng)方面的程序設(shè)計、而用BASIC可以更快的設(shè)

2、計應(yīng)用程序等。作為網(wǎng)絡(luò)程序設(shè)計我更喜歡C/C++語言,它有目標(biāo)程序較小、運(yùn)行速度快等優(yōu)點(diǎn),還包括習(xí)慣問題(所以,下面的描述中如果不特別說明,都以C/C++為例),當(dāng)然選擇什么語言進(jìn)行程序設(shè)計是見仁見智的問題(你決定選擇C/C++了嗎?如果決定了,下面的的描述會更有針對性)。?????我們選擇好一種語言后,并編寫好了程序代碼,這么樣才能讓系統(tǒng)運(yùn)行我們的程序呢?這就需要編譯器了,編譯器的作用就是把類似下面的源代碼編譯成系統(tǒng)可以識別并執(zhí)行的代碼:#include?int?main(){?????printf(“hello?word.

3、r”);?????return?0;}??????所有的語言都有自己的編譯器,C語言的編譯器有TC、BC等,C++語言的編譯器有Visual?C++、C++?Builder等。C和C++語言的關(guān)系是很密切的,C++語言是C語言的超集,而因?yàn)橄蛳碌募嫒菪裕?,如果你寫的C源代碼符合ANSI?C標(biāo)準(zhǔn),那么其在C和C++的編譯器里面都可以編譯,相反,C++的源代碼只能在C++的編譯器中編譯。那么編譯器除了可以把源代碼編譯成可執(zhí)行代碼還有其他的作用嗎?答案是有,一般的情況下,編譯器都提供一個集成的環(huán)境給設(shè)計這編寫、編譯程序,還包括一系列的函數(shù)庫,比如

4、上面例子中的prinrf就是stdlib.h提供的一個庫函數(shù)。在涉及到網(wǎng)絡(luò)程序設(shè)計中,常聽到Winsock、Winapi等說法,而這些也是編譯器提供的一套庫函數(shù),而這些庫函數(shù)有一些編譯器是不提供的,如TC、BC等,所以這些編譯器不可以你作為網(wǎng)絡(luò)程序設(shè)計的編譯器,當(dāng)然,這些編譯器不適合作為網(wǎng)絡(luò)程序設(shè)計的編譯器還有其他重要的原因。???????匆娤旅孢@樣的問題:?????這個程序我用TC怎么編譯不了??????可以不可以用TC編寫網(wǎng)絡(luò)程序??????…?????現(xiàn)在告訴你,不可以,除了上面的原因,更重要的原因是我們現(xiàn)在程序所運(yùn)行的平臺是Windows(

5、當(dāng)然有其他的,但情況是類似的),而?Winsock、Winapi本身是由系統(tǒng)(Windows)提供給我們的接口,編譯器是幫助我們使用這些接口的橋梁,而TC等編譯器本身沒有這個功能,所以不能使用它們來幫助我們編寫網(wǎng)絡(luò)程序。還有,TC等編譯器是為DOS等16位操作系統(tǒng)設(shè)計的,已經(jīng)不能夠適用我們現(xiàn)在32位的操作系統(tǒng)環(huán)境了。所以,我推薦Visual?C++、C++?Builder或其他32位C++編譯器。?????Visual?C++、C++?Builder或其他的32位C++編譯器誰更好呢?這也是見仁見智的問題,常見到有些報道說現(xiàn)在的C++?Builde

6、r比Visual?C++要好,這兩個編譯器不斷的在競爭、攀比。我選擇Visual?C++,并不是說它比C++?Builder好,而是因?yàn)樗帉懙目蓤?zhí)行代碼(目標(biāo)文件)比較小,這也不是說它比C++?Builder好,而是因?yàn)樗荕icrosoft出品的,而Windows也是Microsoft出品的,在Windows的發(fā)行版本中本身就包含了很多運(yùn)行庫,這樣Visual?C++的目標(biāo)代碼比較小。二、關(guān)于代理?????一般做壞事的時候都害怕對方發(fā)現(xiàn)自己的真實(shí)IP,怎么辦?用代理是簡單的辦法。下面描述如何編程使用各種代理。1、HTTP代理?????HTTP代

7、理可以把我們的HTTP請求通過HTTP代理服務(wù)器轉(zhuǎn)發(fā)到我們要訪問的HTTP服務(wù)器,再把結(jié)果返回給我們,以達(dá)到代理的目的。但其功能單一,只能實(shí)現(xiàn)HTTP的代理,具體可以查看RFC?2068、2616等相關(guān)RFC文檔。?????正常情況下,我們請求HTTP服務(wù)是這樣的:首先和目的服務(wù)器的HTTP服務(wù)端口建立TCP連接,然后做類似“GET?/index.html?HTTP/1.0”的請求,HTTP服務(wù)器返回結(jié)果。當(dāng)通過HTTP代理的時候是這樣工作的:首先和HTTP代理服務(wù)器的服務(wù)端口建立TCP連接,然后做類似“GET?http://目標(biāo)服務(wù)器地址/ind

8、ex.htm?HTTP/1.0”的請求,代理服務(wù)器對你的目標(biāo)服務(wù)器做請求后返回結(jié)果給你。?????相關(guān)的代碼在網(wǎng)上很容易可

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。