真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

WinSockAPI相關(guān)函數(shù)-創(chuàng)新互聯(lián)

WinSock提供了許多套接字函數(shù),它們并不代表協(xié)議的某一個(gè)層次,其實(shí)質(zhì)就是一組編程接口,用戶利用這些函數(shù)可以很容易地進(jìn)行編程。
(1)socket函數(shù)
socket函數(shù)用于創(chuàng)建一個(gè)套接字。
語(yǔ)法:

創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、祁連網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、購(gòu)物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為祁連等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
SOCKET socket (
int af,       
int type,     
int protocol  
);

af:標(biāo)識(shí)一個(gè)地址家族,通常為AF_INET。
type:標(biāo)識(shí)套接字類型,如果為SOCK_STREAM,表示流式套接字;如果為SOCK_DGRAM,表示數(shù)據(jù)報(bào)套接字。
protocol:標(biāo)識(shí)一個(gè)特殊的協(xié)議被用于這個(gè)套接字,通常為0,表示采用默認(rèn)的TCP/IP協(xié)議。

(2)accpet函數(shù)
accpet函數(shù)用于接受客戶端的連接請(qǐng)求。返回值是一個(gè)新的套接字,它對(duì)應(yīng)于已經(jīng)接受的客戶端連接,對(duì)于該客戶端的所有后續(xù)操作,都應(yīng)使用這個(gè)新的套接字。
語(yǔ)法:

SOCKET accept (
SOCKET s,
struct sockaddr FAR* addr,  
int FAR* addrlen
);

s:是一個(gè)套接字,它應(yīng)處于監(jiān)聽(tīng)狀態(tài)。
addr:是一個(gè)sockaddr_in結(jié)構(gòu)指針,包含一組客戶端的端口號(hào)、IP地址等信息。
addrlen:用于接收參數(shù)addr的長(zhǎng)度。

(3)bind函數(shù)
bind函數(shù)用于將套接字綁定到一個(gè)已知的地址上。如果函數(shù)執(zhí)行成功,返回值為0,否則為SOCKET_ERROR。
語(yǔ)法:

int bind (
SOCKET s,                          
const struct sockaddr FAR*  name,  
int namelen                        
);

s:  是一個(gè)套接字。
name:是一個(gè)sockaddr結(jié)構(gòu)指針,該結(jié)構(gòu)中包含了要綁定的地址和端口號(hào)。
namelen:確定name緩沖區(qū)的長(zhǎng)度。
在定義一個(gè)套接字后,需要調(diào)用bind函數(shù)為其指定本機(jī)地址、協(xié)議和端口號(hào)。

例如,創(chuàng)建一個(gè)套接字s,將其綁定到3010端口上,其代碼如下:

int port = 3010;
SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
sockaddr_in addr;
addr.sin_family = AF_INET; //內(nèi)部網(wǎng)絡(luò)協(xié)議TCP\UDP等
addr.sin_port = htons(port);  //端口號(hào)
addr.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(s,(LPSOCKADDR)&addr,sizeof(addr))==0)
{
MessageBox("成功");
}

(4)closesocket函數(shù)
closesocket函數(shù)用于關(guān)閉某個(gè)套接字。
語(yǔ)法:

int closesocket (
SOCKET s  
);

s:標(biāo)識(shí)一個(gè)套接字。如果參數(shù)s設(shè)置有SO_DONTLINGER選項(xiàng),則調(diào)用該函數(shù)后會(huì)立即返回,但此時(shí)如果有數(shù)據(jù)尚未傳送完畢,會(huì)繼續(xù)傳遞數(shù)據(jù),然后才關(guān)閉套接字。

(5)connect函數(shù)
connect函數(shù)用于發(fā)送一個(gè)連接請(qǐng)求。如果函數(shù)執(zhí)行成功,返回值為0,否則為SOCKET_ERROR。用戶可以通過(guò)WSAGetLastError得到其錯(cuò)誤描述。
語(yǔ)法:

int connect (
SOCKET s,
const struct sockaddr FAR*  name,  
int namelen
);

s:標(biāo)識(shí)一個(gè)套接字。
name:套接字s想要連接的主機(jī)地址和端口號(hào)。
namelen:name緩沖區(qū)的長(zhǎng)度。

(6)htons函數(shù)
htons函數(shù)將一個(gè)16位的無(wú)符號(hào)短整型數(shù)據(jù)由主機(jī)排列方式轉(zhuǎn)換為網(wǎng)絡(luò)排列方式。
語(yǔ)法:

u_short htons (
u_short hostshort  
);

hostshort:一個(gè)主機(jī)排列方式的無(wú)符號(hào)短整型數(shù)據(jù)。

(7)htonl函數(shù)
htonl函數(shù)將一個(gè)32位的無(wú)符號(hào)長(zhǎng)整型數(shù)據(jù)由主機(jī)排列方式轉(zhuǎn)換為網(wǎng)絡(luò)排列方式。
語(yǔ)法:

u_long htonl (
u_long hostlong  
);

hostlong:一個(gè)主機(jī)排列方式的無(wú)符號(hào)長(zhǎng)整型數(shù)據(jù)。

(8)inet_addr函數(shù)
inet_addr函數(shù)將一個(gè)由字符串表示的地址轉(zhuǎn)換為32位的無(wú)符號(hào)長(zhǎng)整型數(shù)據(jù)。
語(yǔ)法:

unsigned long inet_addr (
const char FAR * cp  
);

cp:一個(gè)表示IP地址的字符串。

(9)listen函數(shù)
listen函數(shù)用于將套接字置入監(jiān)聽(tīng)模式。
語(yǔ)法:

int listen (
SOCKET s, 
int backlog  
);

s:套接字。
backlog:表示等待連接的大隊(duì)列長(zhǎng)度。例如,如果backlog被設(shè)置為3,此時(shí)有4個(gè)客戶端同時(shí)發(fā)出連接請(qǐng)求,那么前3個(gè)客戶端連接會(huì)放置在等待隊(duì)列中,第4個(gè)客戶端會(huì)得到錯(cuò)誤信息。

(10)recv函數(shù)
recv函數(shù)用于從連接的套接字中返回?cái)?shù)據(jù)。
語(yǔ)法:

int recv (
SOCKET s,       
char FAR* buf,  
int len,        
int flags       
);

recv函數(shù)參數(shù)的說(shuō)明如表18.5所示。
表18.5 recv函數(shù)參數(shù)說(shuō)明
參數(shù)名稱   參 數(shù) 描 述
S                 標(biāo)識(shí)一個(gè)套接字
Buf             是接收數(shù)據(jù)的緩沖區(qū)
Len            是buf的長(zhǎng)度
Flags           表示函數(shù)的調(diào)用方式,可選值如下:MSG_PEEK_用來(lái)查看傳來(lái)的數(shù)據(jù),在序列前端的數(shù)據(jù)會(huì)被復(fù)制一份到返回緩沖區(qū)中,但是這個(gè)數(shù)據(jù)不會(huì)從序列中移走M(jìn)SG_OOB_用來(lái)處理Out-Of-Band數(shù)據(jù)

(11)select函數(shù)
select函數(shù)用來(lái)檢查一個(gè)或多個(gè)套接字是否處于可讀、可寫或錯(cuò)誤狀態(tài)。
語(yǔ)法:

int select (
int nfds, 
fd_set FAR * readfds,               
fd_set FAR * writefds,              
fd_set FAR * exceptfds,             
const struct timeval FAR * timeout  
);

select函數(shù)參數(shù)說(shuō)明如表18.6所示。
表18.6 select函數(shù)參數(shù)說(shuō)明
參數(shù)名稱      參數(shù)描述
nfds               沒(méi)有實(shí)際意義,只是為了和UNIX下的套接字兼容
readfds          標(biāo)識(shí)一組被檢查可讀的套接字
writefds          標(biāo)識(shí)一組被檢查可寫的套接字
exceptfds       是被檢查有錯(cuò)誤的套接字
timeout           標(biāo)識(shí)函數(shù)的等待時(shí)間

(12)send函數(shù)
send函數(shù)在已經(jīng)建立連接的套接字上發(fā)送數(shù)據(jù)。
語(yǔ)法:

int send (
SOCKET s,              
const char FAR * buf,  
int len,               
int flags              
);

send函數(shù)參數(shù)說(shuō)明如表18.7所示。
表18.7 send函數(shù)參數(shù)說(shuō)明
參數(shù)名稱    參數(shù)描述
s                   標(biāo)識(shí)一個(gè)套接字
buf               是存放要發(fā)送數(shù)據(jù)的緩沖區(qū)
len                標(biāo)識(shí)緩沖區(qū)長(zhǎng)度
flags             標(biāo)識(shí)函數(shù)的調(diào)用方式

(13)WSAStartup函數(shù)
WSAStartup函數(shù)用于初始化WS2_32動(dòng)態(tài)庫(kù)。它應(yīng)該是應(yīng)用程序第1個(gè)調(diào)用的Windows Socket函數(shù),用于確定Windows Socket使用的版本。
語(yǔ)法:

int WSAStartup (
WORD wVersionRequested,  
LPWSADATA lpWSAData  
);

wVersionRequested:標(biāo)識(shí)調(diào)用者使用的Windows Socket的版本,高字節(jié)記錄修訂版本,低字節(jié)記錄主版本。例如,如果Windows Socket的版本為2.1,則高字節(jié)記錄1,低字節(jié)記錄2。
lpWSAData:記錄Windows Socket的詳細(xì)信息。
下面的代碼用于確定Windows Socket使用的版本。

WSADATA wsd;
WSAStartup(MAKEWORD(2,2),&wsd);

14)WSACleanup函數(shù)
WSACleanup函數(shù)與WSAStartup函數(shù)是相對(duì)的,用于終止使用WS2_32動(dòng)態(tài)庫(kù)。
語(yǔ)法:

int  WSACleanup (void);

(15)WSAAsyncSelect函數(shù)
WSAAsyncSelect函數(shù)用于將網(wǎng)絡(luò)中發(fā)生的事件關(guān)聯(lián)到窗口的某個(gè)消息中。
語(yǔ)法:

int WSAAsyncSelect (
SOCKET s, 
HWND hWnd, 
unsigned int wMsg, 
long lEvent 
);

WSAAsyncSelect函數(shù)參數(shù)說(shuō)明如表18.8所示。
表18.8 WSAAsyncSelect函數(shù)參數(shù)說(shuō)明
參數(shù)名稱       參數(shù)描述
s                     標(biāo)識(shí)套接字
hWnd             標(biāo)識(shí)窗口句柄
wMsg             標(biāo)識(shí)窗口消息
lEvent               標(biāo)識(shí)網(wǎng)絡(luò)中的事件

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前名稱:WinSockAPI相關(guān)函數(shù)-創(chuàng)新互聯(lián)
文章地址:http://weahome.cn/article/ccdsop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部