版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1大家好TCPSocket
編程基礎(chǔ)23TCP流程服務(wù)端在某端口監(jiān)聽客戶端連接服務(wù)端(1)被動(dòng)鏈接(2)主動(dòng)鏈接(反彈鏈接)服務(wù)端主動(dòng)鏈接客戶端客戶端在某端口監(jiān)聽4Socket基礎(chǔ)1.Socket介紹(1)Socket是指運(yùn)行在網(wǎng)絡(luò)上的兩個(gè)程序間雙向通訊連接的末端,它提供客戶端和服務(wù)器端的連接通道。(2)Socket是一種網(wǎng)絡(luò)接口,定義了一組標(biāo)準(zhǔn)函數(shù),應(yīng)用程序調(diào)用這些函數(shù)實(shí)現(xiàn)網(wǎng)絡(luò)通信,而不必?fù)?dān)心網(wǎng)絡(luò)協(xié)議不同引發(fā)的問題。(3)Socket=IP地址+端口5Socket基礎(chǔ)2.Socket應(yīng)用的基本步驟:(1)服務(wù)器端socket綁定(bind)于特定端口,偵聽(listen)連接請(qǐng)求(2)客戶端向服務(wù)器和特定端口提交連接請(qǐng)求(connect)(3)服務(wù)器接受連接,產(chǎn)生一個(gè)新的socket,綁定到另一端口,由此socket來處理和客戶端的交互;服務(wù)器繼續(xù)偵聽原socket來接受其他客戶端的連接請(qǐng)求(4)連接成功后客戶端也產(chǎn)生一socket,并通過它來與服務(wù)器端通訊(注意:客戶端socket并不與特定端口綁定)(5)服務(wù)器端和客戶端通過讀取(recv)和寫入(send)各自的socket來進(jìn)行通訊6常用函數(shù)套接字創(chuàng)建函數(shù)——socket()創(chuàng)建本地地址結(jié)構(gòu)——bind()監(jiān)聽連接——listen()請(qǐng)求建立套接字連接——connect()接收建立套接字連接請(qǐng)求——accept()流套接字?jǐn)?shù)據(jù)傳輸——send()/recv()數(shù)據(jù)報(bào)套接字?jǐn)?shù)據(jù)傳輸——sendto()/recvfrom()輸入/輸出多路復(fù)用——select()關(guān)閉套接字——closesocket()7TCP流程-服務(wù)器(被動(dòng)鏈接)socket(),創(chuàng)建套接字slisten(),生成監(jiān)聽套接字saccept(),等待連接s0.0.0.0:0-0.0.0.0:0bind(),綁定本地地址結(jié)構(gòu)(IP和端口)s192.168.1.10:8888-0.0.0.0:0ss192.168.1.10:8888-192.168.1.50:10268socket()創(chuàng)建套接字intsocket(intfamily,inttype,intprotocol);返回值成功:返回套接字描述符失?。悍祷?1通信協(xié)議通信協(xié)議族SOCKETs=socket(AF_INET,SOCK_STREAM,0);9bind()套接字綁定intsocket(intsockfd,structsockaddr*my_addr,intaddrlen);返回值成功:返回0失敗:返回-1地址結(jié)構(gòu)指針Socket函數(shù)返回的套接字描述符bind(s,(struct
sockaddr*)&serveraddr,sizeof(serveraddr));Sockaddr結(jié)構(gòu)的長(zhǎng)度10listen()把套接字轉(zhuǎn)換為監(jiān)聽狀態(tài)intlisten(SOCKETs,intbacklog);返回值成功:返回0失?。悍祷?1指定最多同時(shí)等待多少個(gè)連接listen(s,SOMAXCONN);11accept()接受客戶端連接SOCKETaccept(SOCKETs,
struct
sockaddr*addr,
intFAR*addrlen);返回值成功:返回新套接字的描述符失敗:返回-1處于監(jiān)聽模式的套接字SOCKETs=accept(sockServer,(SOCKADDR*)&addrClient,&len);12send()數(shù)據(jù)發(fā)送intsend(SOCKETs,constcharFAR*buf,
int
len,
intflags);返回值成功:實(shí)際發(fā)送的字節(jié)數(shù)失?。?1要發(fā)送數(shù)據(jù)緩沖區(qū)send(s,sendBuf,strlen(sendBuf),0);要發(fā)送的數(shù)據(jù)的字節(jié)數(shù)一般置為013recv()數(shù)據(jù)發(fā)送int
recv(SOCKETs,charFAR*buf,
int
len,
intflags);返回值成功:實(shí)際接收的字節(jié)數(shù)失敗:-1數(shù)據(jù)接收緩沖區(qū)intret=recv(s,recvBuf,200,0);數(shù)據(jù)接收緩沖區(qū)長(zhǎng)度一般置為014SOCKETs=socket(AF_INET,SOCK_STREAM,0);struct
sockaddr_in
serveraddr;memset((void*)&serveraddr,0,sizeof(serveraddr));serveraddr.sin_family=AF_INET;serveraddr.sin_addr.s_addr=inet_addr("192.168.1.10");serveraddr.sin_port=htons(8888);bind(s,(struct
sockaddr*)&serveraddr,sizeof(serveraddr));listen(s,SOMAXCONN);……SOCKETss=accept(s,(SOCKADDR*)&addrClient,&len);send(ss,...);closesocket(ss);closesocket(s);程序范例15TCP流程-客戶端socket(),創(chuàng)建套接字ss0.0.0.0:0-0.0.0.0:0connect(),連接服務(wù)器s192.168.1.50:1026-192.168.1.10:888816SOCKETs=socket(AF_INET,SOCK_STREAM,0);struct
sockaddr_in
serveraddr;memset((void*)&serveraddr,0,sizeof(serveraddr));serveraddr.sin_family=AF_INET;serveraddr.sin_addr.s_addr=inet_addr("192.168.0.1");serveraddr.sin_p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省揭陽市惠來縣第一中學(xué) 2025-2026學(xué)年七年級(jí)上學(xué)期1月期末道德與法治試題(含答案)
- 2026云南省煙草專賣局(公司)畢業(yè)生招聘65人備考題庫(第一批)及答案詳解(奪冠系列)
- 2026興業(yè)銀行南昌分行招聘10人備考題庫及1套完整答案詳解
- 2025廣東中山市人民政府民眾街道辦事處招聘合同制工作人員7人備考題庫及答案詳解1套
- 2025湖南株洲炎陵縣財(cái)政局、縣審計(jì)局招聘專業(yè)人才4人備考題庫及答案詳解(考點(diǎn)梳理)
- 2026年突發(fā)公共衛(wèi)生事件應(yīng)急處理衛(wèi)生事業(yè)管理學(xué)試題含答案
- 2026年反電信詐騙知識(shí)競(jìng)賽試題及答案(共五套)
- 2026年計(jì)算機(jī)輔助制造(CAM)項(xiàng)目可行性研究報(bào)告
- 2026年智能按摩錘項(xiàng)目可行性研究報(bào)告
- 2026年智能座艙生成式AI項(xiàng)目評(píng)估報(bào)告
- 廣東省花都亞熱帶型巖溶地區(qū)地基處理與樁基礎(chǔ)施工技術(shù):難題破解與方案優(yōu)化
- 生鮮乳安全生產(chǎn)培訓(xùn)資料課件
- 基于知識(shí)圖譜的高校學(xué)生崗位智能匹配平臺(tái)設(shè)計(jì)研究
- GB 4053.3-2025固定式金屬梯及平臺(tái)安全要求第3部分:工業(yè)防護(hù)欄桿及平臺(tái)
- 2026年《必背60題》高校專職輔導(dǎo)員高頻面試題包含詳細(xì)解答
- 2026年八年級(jí)生物上冊(cè)期末考試試卷及答案
- 工程顧問協(xié)議書
- GA 1016-2012槍支(彈藥)庫室風(fēng)險(xiǎn)等級(jí)劃分與安全防范要求
- 砂漿拉伸粘結(jié)強(qiáng)度強(qiáng)度試驗(yàn)記錄和報(bào)告
- 220kv輸電線路工程施工組織設(shè)計(jì)
- (完整)中考英語??嫉?00個(gè)高頻詞匯
評(píng)論
0/150
提交評(píng)論