Linux網(wǎng)絡(luò)編程學(xué)習(xí)總結(jié)

Linux網(wǎng)絡(luò)編程學(xué)習(xí)總結(jié)

ID:41567057

大?。?1.23 KB

頁數(shù):19頁

時間:2019-08-27

Linux網(wǎng)絡(luò)編程學(xué)習(xí)總結(jié)_第1頁
Linux網(wǎng)絡(luò)編程學(xué)習(xí)總結(jié)_第2頁
Linux網(wǎng)絡(luò)編程學(xué)習(xí)總結(jié)_第3頁
Linux網(wǎng)絡(luò)編程學(xué)習(xí)總結(jié)_第4頁
Linux網(wǎng)絡(luò)編程學(xué)習(xí)總結(jié)_第5頁
資源描述:

《Linux網(wǎng)絡(luò)編程學(xué)習(xí)總結(jié)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫

1、Linux網(wǎng)絡(luò)編程學(xué)習(xí)總結(jié)項冃組:開發(fā)組姓名:李向勇老師:喬永峰H期:2015.12.09Linux網(wǎng)絡(luò)編程學(xué)習(xí)總結(jié)1目錄3一、socket結(jié)構(gòu)31.structsockaddr通用套接字32.structsockaddrjn實際使用套接字3二、socket類型41.SOCK_STREAM42.SOCK_DGRAM41.SOCK_RAM4三、TCP網(wǎng)絡(luò)編程架構(gòu)41.服務(wù)器客戶端交互42?服務(wù)器函數(shù)51)socket()52)bind()63)listen()74)accept))75)send()/write()86)recv()/read()97)closef)9

2、1.客戶端函數(shù)101)socket()102)connect()103)send()104)recv()115)close()11四、服務(wù)器客戶端的例子111?服務(wù)器接收/發(fā)送112.客戶端接收/發(fā)送123.Makefile編寫144.線程141)線程倉U建pthread_create()142)pthreadjoin()153)pthread_exit()155.使用到的其他函數(shù)161)htonl()/htons()162)fork()163)inet_pton()16目錄學(xué)習(xí)Linux網(wǎng)絡(luò)編程也有一段吋間,在呂同學(xué)和喬老師的幫助下寫了一個服務(wù)器與客戶端之間收發(fā)消

3、息的例子,下面就主要用到的知識點作一回顧和總結(jié)。一、socket結(jié)構(gòu)1.structsockaddr通用套接字structsockaddr{u_shortsa_family;〃協(xié)議簇charsa_data[14];//14字節(jié)的特定協(xié)議地址}2.structsockaddrjn實際使用套接字structsockaddrjn{u8sinjen;/*structsockaddrjn的長度16*/u8sin_family;/*AF_INET*/ul6sin_port;/*16位端口號*/structin_addrsin_addr;/*IP地址32位*/charsin_ze

4、ro[8];}structin_addr結(jié)構(gòu):structin_addr//32位IP地址,網(wǎng)絡(luò)字節(jié)序{u32s_addr;}二socket類型1.SOCK_STREAM:流式套接字可以提供可靠的、面向連接的通訊流,使用TCP協(xié)議。2.SOCK_DGRAM:數(shù)據(jù)報套接字定義了一種無連接的服務(wù),數(shù)據(jù)報通過相互獨立的報文進行傳輸,是無序的并且不保證可靠,使用UDP協(xié)議。3.SOCK_RAM:原始套接字使用ip協(xié)議,用于新的網(wǎng)絡(luò)協(xié)議的測試。三、TCP網(wǎng)絡(luò)編程架構(gòu)1.服務(wù)器客戶端交互客戶機進程socket()服務(wù)器進程socket()bind()listen()connec

5、t()send()服務(wù)請求recv()?應(yīng)答信號close()accept()毎9有客戶的連接請求掛起,recv()處理服務(wù)請求0send()xecv()結(jié)束連接通知圖一1.服務(wù)器函數(shù)1)socketf)#inelude#ineludeintsocket(intdomain,inttype,intprotocol);創(chuàng)建一個socket,返冋值:非負數(shù)——創(chuàng)建成功,-1創(chuàng)建失敗family:協(xié)議簇type:套接字的類型:是流式套接字?數(shù)據(jù)報套接字還是原始套接字protocol:套接口所用的協(xié)議。如調(diào)用者不想指定,

6、可用0其返冋值:調(diào)用成功就返冋新創(chuàng)建的套接字的描述符,如果失敗就返回INVALID_SOCKET。綁定一個地址端口bind()intbind(intsockfd,conststructsockaddr*myaddr,socklen_taddrlen);用于綁定Ip地址和端口號到socketsocket:是一個套接字。address:是一個sockaddr結(jié)構(gòu)指針,該結(jié)構(gòu)中包含了要結(jié)合的地址和端口號。addressJen:確定緩沖區(qū)的長度。其返回值:如果函數(shù)執(zhí)行成功,返回值為0,否則為SOCKET_ERROR。1)bind()intbind(intsockfd.con

7、ststructsockaddr*myaddr,socklen_taddrlen);該函數(shù)用于綁定IP地址和端口號到socketosockfd:是一個套接字;myaddr:是一個sockaddr結(jié)構(gòu)指針,該結(jié)構(gòu)中包含了耍結(jié)合的地址和端口號;addrlen:確定緩沖區(qū)的長度;如果函數(shù)執(zhí)行成功,返冋值為0,否則為SOCKET_ERRORo1)listen()intlisten(intsockfd,intbacklog);listen函數(shù)使用主動連接套接口變?yōu)楸贿B接套接口,使得一個進程可以接受其它進程的請求,從而成為一個服務(wù)器進程。在TCP服務(wù)器編程中l(wèi)isten函數(shù)

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

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

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