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

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

ID:14295369

大?。?4.50 KB

頁(yè)數(shù):36頁(yè)

時(shí)間:2018-07-27

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

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

1、網(wǎng)絡(luò)socket編程指南網(wǎng)絡(luò)socket編程指南--------------------------------------------------------------------------------讀者對(duì)象  這個(gè)文檔是一個(gè)指南,而不是參考書(shū)。如果你剛開(kāi)始socket編程并想找一本入門(mén)書(shū),那么你是我的讀者。但這不是一本完全的socket編程書(shū)。--------------------------------------------------------------------------------平臺(tái)和編譯器  這篇文檔中

2、的大多數(shù)代碼都在Linux平臺(tái)PC上用GNU的gcc成功編譯過(guò)。而且它們?cè)贖PUX平臺(tái)上用gcc也成功編譯過(guò)。但是注意,并不是每個(gè)代碼片段都獨(dú)立測(cè)試過(guò)。--------------------------------------------------------------------------------目錄: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)acce

3、pt()函數(shù)12)send()和recv()函數(shù)13)sendto()和recvfrom()函數(shù)14)close()和shutdown()函數(shù)15)getpeername()函數(shù)16)gethostname()函數(shù)17)域名服務(wù)(DNS)18)客戶-服務(wù)器背景知識(shí)19)簡(jiǎn)單的服務(wù)器20)簡(jiǎn)單的客戶端21)數(shù)據(jù)包套接字Socket22)阻塞23)select()--多路同步I/O24)參考資料--------------------------------------------------------------------------

4、------什么是socket?  你經(jīng)常聽(tīng)到人們談?wù)撝皊ocket”,或許你還不知道它的確切含義?,F(xiàn)在讓我告訴你:它是使用標(biāo)準(zhǔn)Unix文件描述符(filedescriptor)和其它程序通訊的方式。什么?你也許聽(tīng)到一些Unix高手(hacker)這樣說(shuō)過(guò):“呀,Unix中的一切就是文件!”那個(gè)家伙也許正在說(shuō)到一個(gè)事實(shí):Unix程序在執(zhí)行任何形式的I/O的時(shí)候,程序是在讀或者寫(xiě)一個(gè)文件描述符。一個(gè)文件描述符只是一個(gè)和打開(kāi)的文件相關(guān)聯(lián)的整數(shù)。但是(注意后面的話),這個(gè)文件可能是一個(gè)網(wǎng)絡(luò)連接,F(xiàn)IFO,管道,終端,磁盤(pán)上的文件或者什么其它

5、的東西。Unix中所有的東西就是文件!所以,你想和Internet上別的程序通訊的時(shí)候,你將要使用到文件描述符。你必須理解剛才的話?,F(xiàn)在你腦海中或許冒出這樣的念頭:“那么我從哪里得到網(wǎng)絡(luò)通訊的文件描述符呢?”,這個(gè)問(wèn)題無(wú)論如何我都要回答:你利用系統(tǒng)調(diào)用socket(),它返回套接字描述符(socketdescriptor),然后你再通過(guò)它來(lái)進(jìn)行send()和recv()調(diào)用?!暗?..”,你可能有很大的疑惑,“如果它是個(gè)文件描述符,那么為什么不用一般調(diào)用read()和write()來(lái)進(jìn)行套接字通訊?”簡(jiǎn)單的答案是:“你可以使用!”。詳

6、細(xì)的答案是:“你可以,但是使用send()和recv()讓你更好的控制數(shù)據(jù)傳輸?!贝嬖谶@樣一個(gè)情況:在我們的世界上,有很多種套接字。有DARPAInternet地址(Internet套接字),本地節(jié)點(diǎn)的路徑名(Unix套接字),CCITTX.25地址(你可以將X.25套接字完全忽略)。也許在你的Unix機(jī)器上還有其它的。我們?cè)谶@里只講第一種:Internet套接字。--------------------------------------------------------------------------------Interne

7、t套接字的兩種類型  什么意思?有兩種類型的Internet套接字?是的。不,我在撒謊。其實(shí)還有很多,但是我可不想嚇著你。我們這里只講兩種。除了這些,我打算另外介紹的"RawSockets"也是非常強(qiáng)大的,很值得查閱。那么這兩種類型是什么呢?一種是"StreamSockets"(流格式),另外一種是"DatagramSockets"(數(shù)據(jù)包格式)。我們以后談到它們的時(shí)候也會(huì)用到"SOCK_STREAM"和"SOCK_DGRAM"。數(shù)據(jù)包套接字有時(shí)也叫“無(wú)連接套接字”(如果你確實(shí)要連接的時(shí)候可以用connect()。)流式套接字是可靠的雙

8、向通訊的數(shù)據(jù)流。如果你向套接字按順序輸出“1,2”,那么它們將按順序“1,2”到達(dá)另一邊。它們是無(wú)錯(cuò)誤的傳遞的,有自己的錯(cuò)誤控制,在此不討論。有什么在使用流式套接字?你可能聽(tīng)說(shuō)過(guò)telnet,不是嗎?它就使

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(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)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。