?? 3-2.htm
字號(hào):
<html>
<head>
<title>3-2</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<table width="100%" border="0">
<tr>
<td height="31">
<div align="center"><b><font color="#000099">3.2 Windows Sockets編程原理</font></b></div>
</td>
</tr>
<tr>
<td height="31">由于Windows的基于消息的特點(diǎn),WINSOCK和BSD套接口相比,有如下一些新的擴(kuò)充:</td>
</tr>
<tr>
<td height="28">1.異步選擇機(jī)制</td>
</tr>
<tr>
<td height="67">異步選擇函數(shù)WSAAsyncSelect()允許應(yīng)用程序提名一個(gè)或多個(gè)感興趣的網(wǎng)絡(luò)事件,如FD_READ,FD_WRITE,FD_CONNECT,FD_ACCEPT等等代表的網(wǎng)絡(luò)事件.當(dāng)被提名的網(wǎng)絡(luò)事件發(fā)生時(shí),Windows應(yīng)用程序的窗口函數(shù)將收到一個(gè)消息.這樣就可以實(shí)現(xiàn)事件驅(qū)動(dòng)了.</td>
</tr>
<tr>
<td height="32">2.異步請求函數(shù)</td>
</tr>
<tr>
<td height="41">異步請求函數(shù)允許應(yīng)用程序用異步方式獲得請求的信息,如WSAAsyncGetXByY()類函數(shù). 這些函數(shù)是對(duì)BSD標(biāo)準(zhǔn)函數(shù)的擴(kuò)充.函數(shù)WSACancelAsyncRequest()允許用戶中止一個(gè)正在執(zhí)行的異步請求.</td>
</tr>
<tr>
<td height="33">3.阻塞處理方法</td>
</tr>
<tr>
<td height="64">WINSOCK提供了"鉤子函數(shù)"負(fù)責(zé)處理Windows消息,使Windows的消息循環(huán)能夠繼續(xù).WINSOCK提供了兩個(gè)函數(shù)(WSASetBlockingHook()和WSAUnhookBlockingHook())讓應(yīng)用程序設(shè)置或取消自己的"鉤子函數(shù)".函數(shù)WSAIsBlocking()可以檢測是否阻塞,函數(shù)WSACancelBlockingCall()可以取消一個(gè)阻塞的調(diào)用.</td>
</tr>
<tr>
<td height="28">4.錯(cuò)誤處理</td>
</tr>
<tr>
<td height="28">WINSOCK提供了兩個(gè)WSAGetLastError()和WSASetLastError()來獲取和設(shè)置最近錯(cuò)誤號(hào)</td>
</tr>
<tr>
<td height="30">5.啟動(dòng)和終止</td>
</tr>
<tr>
<td height="62">由于Windows Sockets的服務(wù)是以動(dòng)態(tài)連接庫WINSOCK.DLL形式實(shí)現(xiàn)的,所以必須要先調(diào)用WSAStartup()函數(shù)對(duì)Windows
Sockets DLL進(jìn)行初始化,協(xié)商WINSOCK的版本支持,并分配必要的資源.在應(yīng)用程序關(guān)閉套接口后,還應(yīng)調(diào)用WSACleanup()終止對(duì)Windows
Sockets DLL的使用,并釋放資源,以備下一次使用.</td>
</tr>
<tr>
<td>在這些函數(shù)中,實(shí)現(xiàn)Windows網(wǎng)絡(luò)實(shí)時(shí)通信的關(guān)鍵是異步選擇函數(shù)WSAAsyncSelect()的使用. 用法及詳細(xì)說明參見第5.3.7.</td>
</tr>
</table>
</body>
</html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -