freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

局域網(wǎng)點對點通信系統(tǒng)(編輯修改稿)

2025-06-24 00:00 本頁面
 

【文章內(nèi)容簡介】 光標(biāo)位置。將消息傳送到應(yīng)用程序有兩種具體的方法,即使用SendMessage( )函數(shù)的發(fā)送消息方法和使用PostMessage( )函數(shù)的郵遞消息方法。這兩種消息傳遞方式的目的都是一致的,都是要把消息傳遞給應(yīng)用程序,但是這兩種消息傳遞方式在使用時仍存在一些細微的差別。發(fā)送消息時,系統(tǒng)不經(jīng)由消息隊列而直接調(diào)用窗口函數(shù),并立即將消息發(fā)送給應(yīng)用程序的窗口函數(shù)。這種通過發(fā)送方式進行傳輸?shù)南⑹且环N“不進隊消息”,應(yīng)用程序直到窗口進程為調(diào)用函數(shù)返回一個結(jié)果后才得以繼續(xù)執(zhí)行。郵遞消息則先把消息放置到應(yīng)用程序的消息隊列中存儲起來,應(yīng)用程序?qū)⒃诳臻e的時候搜索消息隊列,如果在消息隊列中搜索到了消息,將負責(zé)把消息發(fā)送到既定窗口,是在消息隊列中將其刪除。這種郵遞消息的方式在把消息放入到消息隊列后就立即返回,但是返回值只能說明消息是否郵遞成功,而并不能表示被調(diào)用窗口進程的結(jié)果。郵遞方式發(fā)出的消息屬于“進隊消息”,通常多為由用戶輸入而產(chǎn)生的消息[5]?!FC應(yīng)用基礎(chǔ)MFC,微軟基礎(chǔ)類(Microsoft Foundation Classes),實際上是微軟提供的,用于在C++環(huán)境下編寫應(yīng)用程序的一個框架和引擎,Windows環(huán)境下開發(fā)人員使用的專業(yè)C++ SDK,MFC作為與VC++血肉相連的部分,是一個非外掛式的軟件包,類倉庫,開發(fā)平臺,這些類是微軟為VC++專配的,MFC是 Win API與C++的結(jié)合,是一種軟件編程的規(guī)范。MFC不只是一套微軟提供下的一個Win下C++的開發(fā)平臺,也不只是一個功能單純的界面開發(fā)系統(tǒng),它提供的類絕大部分用來進行界面開發(fā),關(guān)聯(lián)一個窗口的動作。MFC應(yīng)用程序框架是以MFC作為框架基礎(chǔ)的,以此程序框架模式搭建起來的應(yīng)用程序自20世紀(jì)90年代初問世以來,MFC一直試圖把Windows API函數(shù)封裝到類庫中的各個邏輯類中。MFC的這種封裝并非簡單地對API函數(shù)進行分組與打包,而是更多地通過類來試圖實現(xiàn)全部的系統(tǒng)策略。隨著越來越多系統(tǒng)功能的加入,MFC的規(guī)模也在不斷拓展,目前已包括有200多個類,涵蓋了通用windows類、文檔/視框架、OLE、數(shù)據(jù)庫、Internet和網(wǎng)絡(luò)類等多方面的內(nèi)容,尤其是Internet和網(wǎng)絡(luò)類的使用將可以在很大程度上簡化對網(wǎng)絡(luò)通信類程序的開發(fā)。MFC提供了相當(dāng)多不同功能的類,以適合盡可能廣泛的需求。這里絕大多數(shù)的MFC類都是直接或間接從CObject類派生出來的,則CObject類為其派生類提供了三個重要的特性支持:持久性(Serialization)支持、運行時(Run—time)類信息支持和診斷(Diagnostic)調(diào)試支持等。其中持久性是以流的方式將某個類對象中的持久性數(shù)據(jù)輸出或輸入到外部存儲介質(zhì)如磁盤文件等的過程;運行時類的信息(Runtime Class Information,RTCI)則可以重新獲取一個對象的類名及其他一些有關(guān)對象在運行時的信息。RTCI也是C++針對運行時類型信息(Runtime Type Information,RTTI)機制外的另一個重要工具;診斷和調(diào)試支持作為CObject類的一個組成部分,可以在實現(xiàn)CObject派生類時執(zhí)行有效性檢查并可向調(diào)試窗口輸出狀態(tài)信息。CObject類是MFC中最主要也是最基本的類之一,該類不支持多重繼承,派生的類只能有一個CObject基類。CObject類是位于類層次結(jié)構(gòu)最頂層的,絕大多數(shù)MFC類都是從CObject類派生出來的。CObject類包含了所有MFC類必須具備的幾個基本功能:持久性支持、運行時類的信息支持和診斷調(diào)試支持.持久性支持功能由成員函數(shù)IsSerializable()和Serialize()提供;前者用于檢測對象是否支持序列化。如果一個類能夠被序列化,就必須在聲明時有DECLARE_SERIAL宏、實現(xiàn)時包含IMPLEMENT_SERIAL宏。在MFC中,CWnd類提供了所有窗口類的基本功能,是一個非常重要的類,大約三分之一的MFC類都是以此為基類。該類主要對創(chuàng)建、操縱窗口類的API函數(shù)進行了封裝,而且通過消息映射機制隱藏了SDK編程中使用相當(dāng)不便的窗口處理函數(shù),使消息的分發(fā)處理更加方便。Cwnd類最重要的一個封裝是對API函數(shù)CreateWindow( )的封裝,該函數(shù)被封裝為CWnd類成員函數(shù)Create( )?!indows窗體設(shè)計窗體是圖形用戶的基本組成部分,也是VC++.NET可視化程序設(shè)計的基礎(chǔ),在應(yīng)用程序中有著非常重要的位置。對于用戶而言,窗體界面就是應(yīng)用程序,用戶感覺不到也不需要知道界面后面的代碼,所以應(yīng)用程序的可用性完全依賴窗體界面。Windows窗體控件是可再次使用的組件,它們封裝了用戶界面功能,并且可以用于客戶端Windows應(yīng)用程序。Windows窗體不僅提供了許多現(xiàn)成的控件,還提供了自行開發(fā)控件的基礎(chǔ)結(jié)構(gòu)??梢越M合現(xiàn)有的控件、擴展現(xiàn)有控件或創(chuàng)作自己的自定義控件。Windows窗體是制作標(biāo)準(zhǔn)Win32屏幕的一種更高級方法,具有非常健全的功能。.NET Framework中所有的語言都是使用Windows窗體來代替它們的圖形窗體所中使用的組件。,Windows窗體為所有的語言提供了一套豐富的、控件和繪圖功能,以及用于圖形和繪圖底層Windows服務(wù)的標(biāo)準(zhǔn)API。 Framework基類的一部分,它使用的命名空間是Systerm::Windows::Forms。在VC++.NET中并沒有單獨的窗體模塊語法,窗體是一個類,所以它不能被隱含加載,既簡單的通過以用一個窗體來加載它是無效的,必須創(chuàng)建該窗體在顯示它。Windows窗體控件是從Systerm::Windows::Forms::Control直接或間接派生的類。開發(fā)Windows常用兩種方案。(1)組合現(xiàn)有控件來創(chuàng)作一個復(fù)合控件  復(fù)合控件封裝可以作為控件重復(fù)使用的用戶界面。其中一個示例就是有文本框和重置按鈕組成的控件??梢暬O(shè)計器為創(chuàng)建復(fù)合控件提供了有力的支持。要創(chuàng)作派生自Systerm::Windows::Forms::UserControl的復(fù)合控件?;怳serControl為子控件提供了鍵盤路由,并使子控件可以作為一個組進行工作。擴展現(xiàn)有控件,對其進行自定義或為其添加功能。一個不能更改顏色的按鈕和一個跟蹤點擊次數(shù)屬性的按鈕就是擴展控件的示例。可以通過從任何Windows窗體控件派生空間并重寫或添加屬性、方法和事件的方式自定義Windows窗體控件。(2)創(chuàng)作不是通過組合或擴展現(xiàn)有控件而形成的控件  在這種方案中,需從基類Systerm::Windows::Forms::Control派生控件,可以添加和重寫基類的屬性、方法和事件。Windows窗體控件的基類為客戶端Windows應(yīng)用程序中的外觀顯示提供了所需的途徑。Control在屏幕上定義一個矩形,并提供一個窗口句柄,用來處理消息路由,并提供鼠標(biāo)和鍵盤事件以及許多其他用戶界面事件。還提供高級布局,并具有用于外觀現(xiàn)實的特定屬性,如ForeColor、BackColor、Height、Width和許多其他屬性。此外它還提供了安全性、線程支持以及ActiveX控件交互性。由于基類提供了很多基礎(chǔ)結(jié)構(gòu),使得開發(fā)Windows窗體控件變得相對簡單。最重要的兩個類是Form和UserControl,所有標(biāo)準(zhǔn)的Windows窗體都是從Form類繼承的,所有窗體控件都是繼承自UserControl類?!indows Socket概念及編程機理Windows Sockets規(guī)范以加里弗尼亞大學(xué)伯克利分校的伯克利軟件發(fā)部(BSD)為基礎(chǔ)定義了一套基于Windows的網(wǎng)絡(luò)編程接口。該接口在包括了UNIX程序員所熟悉的伯克利套接字風(fēng)格的庫函數(shù)同時也提供了Windows所持有的擴展庫函數(shù),使程序員能夠使用Windows系統(tǒng)的消息驅(qū)動機制。Windows Sockets規(guī)范的目的在于提供一個供程序員編程使用,由多個網(wǎng)絡(luò)軟件供應(yīng)者實現(xiàn)的單一應(yīng)用程序編程界面。此外,該規(guī)范還在一個特定版本的Windows基礎(chǔ)上定義了一個用Windows Sockets API編寫應(yīng)用程序的二進制接口,使應(yīng)用程序能基于任何網(wǎng)絡(luò)軟件供應(yīng)者的符合Windows Sockets協(xié)議的實現(xiàn)上正常運行。因此,本規(guī)范定義了程序員能夠使用并可由網(wǎng)絡(luò)軟件供應(yīng)者實現(xiàn)的一套庫函數(shù)調(diào)用及相關(guān)語義。遵守Windows Sockets規(guī)范的網(wǎng)絡(luò)軟件即稱之為Windows Sockets兼容的。而Windows Sockets兼容接口的提供者則被稱為Windows Sockets提供者。要與Windows Sockets兼容,網(wǎng)絡(luò)軟件提供者必須百分之百地實現(xiàn)此Windows Sockets規(guī)范。凡是能與Windows Sockets兼容實現(xiàn)協(xié)同工作的應(yīng)用程序即被認為是具有Windows Sockets接口的,這種應(yīng)用程序即為Windows Sockets應(yīng)用程序。Windows Sockets規(guī)范定義并說明了結(jié)合Internet協(xié)議族(IPS,一般指的是TCP/IP)的API的使用,而且所有的Windows Sockets實現(xiàn)都支持流式(TCP)套接字和數(shù)據(jù)報(UDP)套接字。應(yīng)用程序通過調(diào)用Windows Sockets的API實現(xiàn)相互之間的通信。而Windows Sockets又利用下層的網(wǎng)絡(luò)通信協(xié)議功能和操作系統(tǒng)調(diào)用完成具體的通信工作。 Windows Sockets套接字及分類根據(jù)An Advanced BSD Interprocess Communication Tutorial文檔中的定義,套接字(Socket)是網(wǎng)絡(luò)通信的基本構(gòu)件模塊,它實際是一個可以關(guān)聯(lián)名字的通信端點。所用的每一個套接字都有它的類型及與其相關(guān)的進程。套接字在通信領(lǐng)域中存在。所謂的通信域是通過套接字通信的線程的一些公共特征的抽象。套接字通常僅在一個域中交換數(shù)據(jù)。Windows Sockets規(guī)范支持單一的通信域—Internet域,可以用于Internet協(xié)議族的進程的通信,在規(guī)范的更高版本中還包括了其他一些域。套接字根據(jù)對用戶可見的通信特性機型分類。只要通信協(xié)議支持,就可以在不同類型的套接字上進行通信,盡管如此,應(yīng)用進程更多的還是在相同的套接字之間進行通信。TCP/IP的Socket提供下列三種類型的套接字。一種是流式套接字(SOCKET_STREAM),它提供了一個面向連接,可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯,無重復(fù)的發(fā)送且按發(fā)送順序接收。內(nèi)設(shè)流量控制,避免數(shù)據(jù)流超限;數(shù)據(jù)被看作是字節(jié)流,無長度限制。FTP協(xié)議即采用流式套接字。另一種是數(shù)據(jù)報式套接字(SOCKET_DGRAM),它提供了一個無連接服務(wù)。數(shù)據(jù)包以獨立包形式被發(fā)送,不提供無錯保證,數(shù)據(jù)可能丟失或重復(fù),并且接收順序無序。網(wǎng)絡(luò)文件系統(tǒng)NFS使用數(shù)據(jù)報式套接字。最后一種是原始式套接字(SOCKET_RAW),該接口允許對較低層次協(xié)議,如IP、ICMP直接訪問。常用于檢驗新的協(xié)議實現(xiàn)或訪問現(xiàn)有服務(wù)中配置的新設(shè)備?!√捉幼趾瘮?shù)(1)socket( )函數(shù)  功能是創(chuàng)建一個新的套接字。其函數(shù)原型為:SOCKET PASCAL FAR socket (int af,int type ,int protocol);參數(shù)af為地址格式說明,目前僅支持PF_INET這一種地址格式(ARPA Internet地址格式)。參數(shù)type為新的套接字的類型說明。Protocol為用于該套接字的一個特定協(xié)議,允許將此參數(shù)設(shè)置為0而不指定協(xié)議。socket( )函數(shù)將根據(jù)指定的地址族、數(shù)據(jù)類型和協(xié)議來分配一個套接字描述符及其所用的資源。若未指定協(xié)議(protocol參數(shù)為0),則使用默認連接方式。對于使用一個給定地址族的某一特定的套接字,則只支持一種協(xié)議。但也可以給定如AF——UNSPEC(未說明的)的地址族。這樣將需要指定協(xié)議參數(shù)。使用的協(xié)議號對于進行通信的通信域是特定的。支持SOCK_STREAM和SOCK_DGRAM兩種類型的描述。其中,SOCK_STREAM類型的套接字將以帶外數(shù)據(jù)傳輸機制提供有序、可靠、雙向、基于聯(lián)接的字節(jié)流。對Internet地址族使用TCP協(xié)議。而SOCK_DGRAM類型的套接字支持數(shù)據(jù)報,是一種無聯(lián)接、最大長度固定(一般較小)的不可靠的數(shù)據(jù)緩沖。對Internet地址族使用UDP協(xié)議。SOCK_STREAM類型的流式套接字是全雙工字節(jié)流。在接收或發(fā)送數(shù)據(jù)之前,其必須處于已連接狀態(tài)。一個到其他套接字的連接用connect( )函數(shù)調(diào)用創(chuàng)建。一旦建立了連接,就可以通過send( )和recv( )函數(shù)進行數(shù)據(jù)傳輸。在會話結(jié)束時,調(diào)用closesocket( )關(guān)閉套接字。實現(xiàn)SOCK_STREAM的通信協(xié)議將會保證數(shù)據(jù)不丟失或重復(fù)。如果對端協(xié)議有緩沖區(qū)空間,而數(shù)據(jù)在一個適當(dāng)?shù)臅r間內(nèi)無法成功傳輸,則連接即被認為中斷。后續(xù)的調(diào)用將以WASETIMEDOUT的出錯代碼返回失敗。SOCK_DGRAM類型的數(shù)據(jù)報套接字允許使用sendto( )和recvfrom( )與任意對等端發(fā)送相接收數(shù)據(jù)報。如果這樣的套接字通過connect( )連接到一個特定的對等端,則可以通過調(diào)用send( )或recv( )與該對等端進行數(shù)據(jù)報的發(fā)送與接收。如果函數(shù)成功執(zhí)行,socket()將返回一個引用新的套接字的描述符。否則將返回IN_VALID_SOCKET,可調(diào)用WSAGetLastError( )獲取具體的出錯代碼。(2)bind( )函數(shù)  本函數(shù)的功能是將套接字地址與所創(chuàng)建的套接字號聯(lián)系起來。函數(shù)原型為int PASCAL FAR bind ( SOCKET s , const struct sockaddr FAR* name , int namelen )。其中,s為表示一未捆綁套接字的描述符。參數(shù)name為該套接字所指派的地址,并由最后的參數(shù)namelen指出了name名字的長度。sockaddr結(jié)構(gòu)的定義: struct sockaddr{ u_short_family。 char sa_data[14]。 }。本函數(shù)適用于無連接的數(shù)據(jù)報或流式套接字,在connect( )或listen( )函數(shù)調(diào)用之前被調(diào)用。在socket( )函數(shù)創(chuàng)建了了一
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1