五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

TCP服務(wù)器

發(fā)布日期:2020-10-21 21:49 | 文章來源:網(wǎng)絡(luò)

調(diào)用服務(wù)器

一、socket編程

1.socket

在TCP/IP協(xié)議中,“IP地址+TCP或UDP端口號(hào)”唯一標(biāo)識(shí)網(wǎng)絡(luò)通訊中的一個(gè)進(jìn)程,“IP地址+端口號(hào)”就稱為socket。

在TCP協(xié)議中,建立連接的兩個(gè)進(jìn)程各自有一個(gè)socket來標(biāo)識(shí),那么這兩個(gè)socket組成的socketpair就唯一標(biāo)識(shí)一個(gè)連接。socket本身有“插座”的意思,因此用來描述網(wǎng)絡(luò)連接的一對(duì)一關(guān)系。

2.網(wǎng)絡(luò)字節(jié)序

發(fā)送主機(jī)通常將發(fā)送緩沖區(qū)中的數(shù)據(jù)按內(nèi)存地址從低到高的順序發(fā)出,接收主機(jī)把從網(wǎng)絡(luò)上接到的字節(jié)依次保存在接收緩沖區(qū)中,也是按內(nèi)存地址從低到高的順序保存,因此,網(wǎng)絡(luò)數(shù)據(jù)流的地址應(yīng)這樣規(guī)定:先發(fā)出的數(shù)據(jù)是低地址,后發(fā)出的數(shù)據(jù)是高地址。

TCP/IP協(xié)議規(guī)定,網(wǎng)絡(luò)數(shù)據(jù)流應(yīng)采用大端字節(jié)序,即低地址高字節(jié)。

為使網(wǎng)絡(luò)程序具有可移植性,使同樣的C代碼在大端和小端計(jì)算機(jī)上編譯后都能正常運(yùn)行,可以調(diào)用以下庫函數(shù)做網(wǎng)絡(luò)字節(jié)序和主機(jī)字節(jié)序的轉(zhuǎn)換。

h表示host,n表示network,l表示32位長(zhǎng)整數(shù),s表示16位短整數(shù)。例如htonl表示將32位的長(zhǎng)整數(shù)從主機(jī)字節(jié)序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序,例如將IP地址轉(zhuǎn)換后準(zhǔn)備發(fā)送。如果主機(jī)是小端字節(jié)序,這些函數(shù)將參數(shù)做相應(yīng)的大小端轉(zhuǎn)換然后返回,如果主機(jī)是大端字節(jié)序,這些函數(shù)不做轉(zhuǎn)換,將參數(shù)原封不動(dòng)地返回。

3.socket地址的數(shù)據(jù)類型及相關(guān)函數(shù)

本文基于IPv4的socket網(wǎng)絡(luò)編程,sockaddr_in中的成員structin_addrsin_addr表示32位的IP地址。但是我們通常用點(diǎn)分十進(jìn)制的字符串表示IP地址,以下函數(shù)可以在字符串表示和in_addr表示之間轉(zhuǎn)換。

字符串轉(zhuǎn)in_addr的函數(shù):

in_addr轉(zhuǎn)字符串的函數(shù):

4.TCP協(xié)議通信流程

服務(wù)器調(diào)用socket、bind、listen完成初始化后,調(diào)用accept阻塞等待,處于監(jiān)聽端口的狀態(tài),客戶端調(diào)用socket初始化后,調(diào)用connect發(fā)出SYN段并阻塞等待服務(wù)器應(yīng)答,服務(wù)器應(yīng)答一個(gè)SYN-ACK段,客戶端收到后從connect返回,同時(shí)應(yīng)答一個(gè)ACK段,服務(wù)器收到后從accept返回。

數(shù)據(jù)傳輸?shù)倪^程:建立連接后,TCP協(xié)議提供全雙工的通信服務(wù),但是一般的客戶端/服務(wù)器程序的流程是由客戶端主動(dòng)發(fā)起請(qǐng)求,服務(wù)器被動(dòng)處理請(qǐng)求,一問一答的方式。因此,服務(wù)器從accept返回后立刻調(diào)用read,讀socket就像讀管道一樣,如果沒有數(shù)據(jù)到達(dá)就阻塞等待,這時(shí)客戶端調(diào)用write發(fā)送請(qǐng)求給服務(wù)器,服務(wù)器收到后從read返回,對(duì)客戶端的請(qǐng)求進(jìn)行處理,在此期間客戶端調(diào)用read阻塞等待服務(wù)器的應(yīng)答,服務(wù)器調(diào)用write將處理結(jié)果發(fā)回給客戶端,再次調(diào)用read阻塞等待下一條請(qǐng)求,客戶端收到后從read返回,發(fā)送下一條請(qǐng)求,如此循環(huán)下去。

如果客戶端沒有更多的請(qǐng)求了,就調(diào)close關(guān)閉連接,就像寫端關(guān)閉的管道一樣,服務(wù)器的read返回0,這樣服務(wù)器就知道客戶端關(guān)閉了連接,也調(diào)用close關(guān)閉連接。注意,任何一方調(diào)用close后,連接的兩個(gè)傳輸方向都關(guān)閉,不能再發(fā)送數(shù)據(jù)了。如果一方調(diào)用shutdown則連接處于半關(guān)閉狀態(tài),仍可接收對(duì)方發(fā)來的數(shù)據(jù)。

二、代碼實(shí)現(xiàn)

1.Makefile的編寫

2.服務(wù)器代碼實(shí)現(xiàn)

3.客戶端代碼實(shí)現(xiàn)

三、結(jié)果展示

Tags:調(diào)用服務(wù)器,TCP服務(wù)器

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部