網(wǎng)絡(luò)socket編程指南.doc

網(wǎng)絡(luò)socket編程指南.doc

ID:50935138

大?。?33.50 KB

頁數(shù):41頁

時(shí)間:2020-03-16

網(wǎng)絡(luò)socket編程指南.doc_第1頁
網(wǎng)絡(luò)socket編程指南.doc_第2頁
網(wǎng)絡(luò)socket編程指南.doc_第3頁
網(wǎng)絡(luò)socket編程指南.doc_第4頁
網(wǎng)絡(luò)socket編程指南.doc_第5頁
資源描述:

《網(wǎng)絡(luò)socket編程指南.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫

1、網(wǎng)絡(luò)socket編程指南--------------------------------------------------------------------------------介紹  Socket編程讓你沮喪嗎?從manpages中很難得到有用的信息嗎?你想跟上時(shí)代去編Internet相關(guān)的程序,但是為你在調(diào)用connect()前的bind()的結(jié)構(gòu)而不知所措?等等…????好在我已經(jīng)將這些事完成了,我將和所有人共享我的知識(shí)了。如果你了解C語言并想穿過網(wǎng)絡(luò)編程的沼澤,那么你來對(duì)地方了。-------------------------------------

2、-------------------------------------------讀者對(duì)象?  這個(gè)文檔是一個(gè)指南,而不是參考書。如果你剛開始socket編程并想找一本入門書,那么你是我的讀者。但這不是一本完全的socket編程書。--------------------------------------------------------------------------------平臺(tái)和編譯器?  這篇文檔中的大多數(shù)代碼都在Linux平臺(tái)PC上用GNU的gcc成功編譯過。而且它們?cè)贖PUX平臺(tái)上用gcc也成功編譯過。但是注意,并不是每個(gè)代碼片段都獨(dú)立測試

3、過。--------------------------------------------------------------------------------目錄:1)什么是套接字??2)Internet套接字的兩種類型?3)網(wǎng)絡(luò)理論?4)結(jié)構(gòu)體5)本機(jī)轉(zhuǎn)換6)IP地址和如何處理它們?7)socket()函數(shù)8)bind()函數(shù)9)connect()函數(shù)10)listen()函數(shù)11)accept()函數(shù)12)send()和recv()函數(shù)13)sendto()和recvfrom()函數(shù)14)close()和shutdown()函數(shù)15)getpeername

4、()函數(shù)16)gethostname()函數(shù)17)域名服務(wù)(DNS)18)客戶-服務(wù)器背景知識(shí)?19)簡單的服務(wù)器20)簡單的客戶端21)數(shù)據(jù)報(bào)套接字Socket22)阻塞23)select()--多路同步I/O24)參考資料?--------------------------------------------------------------------------------什么是socket??  你經(jīng)常聽到人們談?wù)撝皊ocket”,或許你還不知道它的確切含義?,F(xiàn)在讓我告訴你:它是使用標(biāo)準(zhǔn)Unix文件描述符(filedescriptor)和其它程序通訊

5、的方式。什么?你也許聽到一些Unix高手(hacker)這樣說過:“呀,Unix中的一切就是文件!”那個(gè)家伙也許正在說到一個(gè)事實(shí):Unix程序在執(zhí)行任何形式的I/O的時(shí)候,程序是在讀或者寫一個(gè)文件描述符。一個(gè)文件描述符只是一個(gè)和打開的文件相關(guān)聯(lián)的整數(shù)。但是(注意后面的話),這個(gè)文件可能是一個(gè)網(wǎng)絡(luò)連接,F(xiàn)IFO,管道,終端,磁盤上的文件或者什么其它的東西。Unix中所有的東西就是文件!所以,你想和Internet上別的程序通訊的時(shí)候,你將要使用到文件描述符。你必須理解剛才的話?,F(xiàn)在你腦海中或許冒出這樣的念頭:“那么我從哪里得到網(wǎng)絡(luò)通訊的文件描述符呢?”,這個(gè)問題無論如

6、何我都要回答:你利用系統(tǒng)調(diào)用socket(),它返回套接字描述符(socketdescriptor),然后你再通過它來進(jìn)行send()和recv()調(diào)用。“但是...”,你可能有很大的疑惑,“如果它是個(gè)文件描述符,那么為什么不用一般調(diào)用read()和write()來進(jìn)行套接字通訊?”簡單的答案是:“你可以使用!”。詳細(xì)的答案是:“你可以,但是使用send()和recv()讓你更好的控制數(shù)據(jù)傳輸?!贝嬖谶@樣一個(gè)情況:在我們的世界上,有很多種套接字。有DARPAInternet地址(Internet套接字),本地節(jié)點(diǎn)的路徑名(Unix套接字),CCITTX.25地址(你

7、可以將X.25套接字完全忽略)。也許在你的Unix機(jī)器上還有其它的。我們?cè)谶@里只講第一種:Internet套接字。--------------------------------------------------------------------------------Internet套接字的兩種類型?  什么意思?有兩種類型的Internet套接字?是的。不,我在撒謊。其實(shí)還有很多,但是我可不想嚇著你。我們這里只講兩種。除了這些,我打算另外介紹的"RawSockets"也是非常強(qiáng)大的,很值得查閱。那么這兩種類型是什么呢?一種是"StreamSockets"

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

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

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