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

正文內(nèi)容

vc局域網(wǎng)聊天程序修正-文庫吧資料

2025-07-13 12:08本頁面
  

【正文】 ndGetWindowText(strServ)。 CWnd* wnd。 ()。 cwSetWindowText(本服務(wù)器名稱為: +severname+\r\n正在后臺等待用戶連接,監(jiān)聽端口:+portstr+……)。 cwEnableWindow(false)。 cwEnableWindow(false)。 cwEnableWindow(false)。 ()。 if((port)){ ()。amp。 port=atoi(portstr)。 ()。 severname=ipstr。 int port。做完這些工作向各個登入用戶發(fā)送信息。 } } } }這是點(diǎn)擊控件“發(fā)送”的消息響應(yīng)函數(shù)。 CEdit *ce=((CEdit*)GetDlgItem(IDC_EDIT1))。i++) { if(csrev[i]) { if( sended=csrev[i].Send(str,len)) { SetDlgItemText(IDC_EDIT2,)。 for(int i=1。 str=severname+:+str。 GetDlgItemText(IDC_EDIT1,history)。當(dāng)然從102565535之間的端口不可能被全部占用。監(jiān)聽成功,用戶登入,聊天內(nèi)容,用戶退出等信息都會記錄在聊天區(qū)中,方便閱讀。當(dāng)聊天區(qū)有信息記錄后會變成可點(diǎn)擊按鈕。當(dāng)點(diǎn)擊開始監(jiān)聽后,服務(wù)器設(shè)置中的按鈕都會變成灰色,不可點(diǎn)擊了,這樣在整個監(jiān)聽過程中維護(hù)了信息的安全性。首先服務(wù)器有一個默認(rèn)設(shè)置,服務(wù)器名稱默認(rèn)值為“亡羊哺狼”,在32位機(jī)器上端口號有65536個。還設(shè)置了服務(wù)器的昵稱為亡羊哺狼。這樣只需在最前面定義一個CWnd的指針就可以動態(tài)的獲取相應(yīng)消息。先定義了個CWnd的指針。 return TRUE。 (0,SS_BITMAP)。 CBitmap bitmap。 SetDlgItemText(IDC_EDIT3,亡羊哺狼)。 wndSetWindowText(str)。 wndGetWindowText(str)。 CString str。這樣可知如果初始化失敗則會調(diào)用函數(shù)AfxMessageBox彈出錯誤信息。 return FALSE。在類CTcpseverApp的初始化函數(shù)中對套接字做了一個初始化工作,使工程正確的得到WinSock的信息。在這些消息調(diào)用中只要正確的加入自己的信息就可以處理好各種事件。這樣就完成了接收并轉(zhuǎn)發(fā)消息的功能。并且在發(fā)送完成后把信息打印到自己的屏幕上。 ceLineScroll(ceGetLineCount()1)。 SetDlgItemText(IDC_EDIT1,str)。 GetDlgItemText(IDC_EDIT1,str1)。i=csnum。 (%s,ss)。\039。j100。 char ss[100]。void CTcpseverDlg::onrev(int mynum){ CString str,str1。當(dāng)服務(wù)器收到網(wǎng)絡(luò)發(fā)送的消息后,框架自動調(diào)用函數(shù)OnReceive(),這樣就執(zhí)行了代碼dlgonrev(mynum)。這樣在派生csocket類之前一定要對CTcpseverDlg類做一個聲明。該代碼意為用對象dlg調(diào)用函數(shù)onrev(),onrev()在類CTcpseverDlg中做了聲明和定義,后續(xù)會去分析這個函數(shù)。該函數(shù)定義為虛函數(shù),這樣才可以在派生的新類csocket中重新定義,根據(jù)多態(tài)性原理可以當(dāng)應(yīng)用程序框架收到消息后會調(diào)用定義的這個OnReceive函數(shù)。在上面的代碼中,只解釋一個封裝于CAsyncSocket中的函數(shù)。 int mynum。 }。 void setp(CTcpseverDlg * severdlg,int num){ mynum=num。 void OnClose(int i){ dlgoncl()。 void OnAccept(int i){ dlgonac()。代碼如下:class csocket:public CSocket{public: void OnReceive(int i){ dlgonrev(mynum)。CAsyncSocket類中封裝了一些有關(guān)套接字之間消息傳遞的函數(shù)。這樣編譯器會自動的加載有關(guān)Socket的相關(guān)動態(tài)連接庫和靜態(tài)庫及相應(yīng)的頭文件到程序中。右邊部分為一些其它內(nèi)容設(shè)置[12]。對于基本內(nèi)容發(fā)送及接受消息,設(shè)計(jì)都以比較突出的方式顯示,并且占據(jù)大部分界面。一個好的界面會讓使用者方便操控,會讓功能直觀的實(shí)現(xiàn),也會給人們良好的視覺沖擊。該協(xié)議所要求用戶必須先確定連接成功后才能發(fā)送消息,如果是UDP協(xié)議那可以不進(jìn)行連接過程,這樣實(shí)時性比較好[11]。整個聊天室基于CSocket的流式連接放大。當(dāng)用戶進(jìn)入聊天室后,服務(wù)器會發(fā)送相應(yīng)的消息通知該用戶進(jìn)入了聊天室。當(dāng)用戶發(fā)送信息后,服務(wù)器會收到用戶發(fā)送的信息,然后服務(wù)器把收到的信息發(fā)送給所有在線用戶。然后啟動客戶端(可啟動多個),設(shè)置用戶昵稱和連接端口等信息,連接服務(wù)器。(5) OnCloes(): 框架調(diào)用該函數(shù)告知套接字與其連接的對方套接字已經(jīng)斷開連接。(3) OnSend(): 框架調(diào)用此函數(shù)來通知該套接字現(xiàn)在可以調(diào)用Send函數(shù)來傳送數(shù)據(jù)??稍谠摵瘮?shù)中調(diào)用Accept()來連接請求,建立連接。可以在這些函數(shù)中寫入自己的代碼,從而更好的完成通信過程。(8) Close(): 關(guān)閉套接字,可由析構(gòu)函數(shù)調(diào)用。(6) Send(): 用于向套接字發(fā)送數(shù)據(jù)。(4) Connect(): 客戶端套接字專用,用于向服務(wù)器發(fā)送連接請求。(2) Create(): 創(chuàng)建套接字,在創(chuàng)建監(jiān)聽套接字時必須加上端口號。整個過程可以分成三個階段 連接建立 、數(shù)據(jù)傳輸和拆除連接[10]。為了利用重載套接字的消息相應(yīng)函數(shù) 必須從CAsyncSocket派生出自己的套接字類,有時為了分開監(jiān)聽套接字和客戶端套接字,還應(yīng)該分別派生監(jiān)聽套接字類和客戶端套接字類。因此,在設(shè)計(jì)聊天系統(tǒng)的過程中,必須要考慮好以下幾個設(shè)計(jì)要點(diǎn):在Internet上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個面向連接的通信過程。只要系統(tǒng)運(yùn)行,該服務(wù)進(jìn)程一直存在,直到正常終止或被強(qiáng)迫終止。由此可知:1) 客戶端與服務(wù)器進(jìn)程的作用是非對稱的,因此編碼不同。 2) 向服務(wù)器發(fā)服務(wù)請求,等待并接收應(yīng)答。5) 關(guān)閉服務(wù)器。服務(wù)完成后,關(guān)閉與客戶的通信鏈路,并終止。2) 等待客戶請求到達(dá)該端口。其次,網(wǎng)間進(jìn)程通信完全是異步的,相互通信的進(jìn)程間既不存在父子關(guān)系,又不共享內(nèi)存緩沖區(qū),因此需要一種機(jī)制為希望通信的進(jìn)程間建立聯(lián)系,為二者的數(shù)據(jù)交換提供同步[9]??蛻魴C(jī)/服務(wù)器模式的建立基于以下兩點(diǎn):首先。由于兩臺計(jì)算機(jī)之間采用的是客戶機(jī)/服務(wù)器模式,為保證數(shù)據(jù)的可靠性,可以采用了基于流方式的套接字編程[8]。流方式的特點(diǎn)是,通訊可靠,對數(shù)據(jù)有校驗(yàn)和重發(fā)的機(jī)制,通常用來作數(shù)據(jù)文件的傳輸如 ftp、telnet等。其過程好像客戶機(jī)在給服務(wù)器打電話,只有服務(wù)器拿起了聽筒,才有可能開始傳輸數(shù)據(jù),這種方式對應(yīng)的TCP協(xié)議。一種叫流方式 ( StreamSocket)也稱面向連接方式。CSocket類提供了一個高級的 Socket支持,運(yùn)用了 MFC的序列化類來提供和傳輸 Socket對象。底層的套接字函數(shù)是 WinInetAPI的一部分,但使用MFC的 CSocket類,它封裝了這些套接字函數(shù)。當(dāng)然 ,套接字句柄和文件句柄是不同的,文件句柄指向一個特定的文件和設(shè)備,而套接字句柄并不代表一個特定的終點(diǎn)或目標(biāo)地址。網(wǎng)絡(luò)專業(yè)人員將每個網(wǎng)絡(luò)會話的末端稱做終點(diǎn)。套接字是可以被命名和尋址的通信端點(diǎn),是網(wǎng)絡(luò)互連終點(diǎn)。對程序員來說,也可以把Socket看成一個文件指針,只要向指針?biāo)傅奈募x寫數(shù)據(jù),就可以實(shí)現(xiàn)雙向通訊。套接字是從英文單詞 socket翻譯過來的, ( Socket在英文中是插座的意思,在這里設(shè)計(jì)者實(shí)際上是暗指電話插座。這個API稱為Socket接口(套接字)。 網(wǎng)絡(luò)編程80年代初,美國政府的高級研究工程機(jī)構(gòu)(ARPA)給加利福尼亞大Berkeley分校提供了資金,讓他們在UNIX操作系統(tǒng)下實(shí)現(xiàn)TCP/IP協(xié)議。所謂可視化編程,就是指:在軟件開發(fā)過程中,用直觀的具有一定含義的圖標(biāo)按鈕、圖形化的對象取代原來手工的抽象的編輯、運(yùn)行、瀏覽操作,軟件開發(fā)過程表現(xiàn)為鼠標(biāo)點(diǎn)擊按鈕和拖放圖形化的對象以及指定對象的屬性、行為的過程。可視化技術(shù)是當(dāng)前發(fā)展迅速并引人注目的技術(shù)之一,它的特點(diǎn)是把原來抽象的數(shù)字、表格、功能邏輯等用直觀的圖形、圖象的形式表現(xiàn)出來[5]。,并增加了一些新特性,使得開發(fā)環(huán)境更易于使用,用戶很容易學(xué)會它的使用方法。、資源編輯器、工程編譯工具、一個增量連接器、源代碼瀏覽器、集成調(diào)試工具,以及一套聯(lián)機(jī)文檔。但是隨著企業(yè)規(guī)模的擴(kuò)大,業(yè)務(wù)量的增加,企業(yè)內(nèi)部的信息越來越私密,企業(yè)只希望員工通過內(nèi)部局域網(wǎng)進(jìn)行溝通與交流,避免企業(yè)內(nèi)部機(jī)密通過Internet泄露到外部,所以局域網(wǎng)的聊天工具也占了很大的市場[4]。而MSN Messenger所有數(shù)據(jù)都要經(jīng)過服務(wù)器,服務(wù)器壓力可想而知(難怪平時很少見到使用MSN進(jìn)行語音視頻聊天的)。 圖1 騰訊服務(wù)器客戶端模型與騰訊不同,微軟的MSN Messenger只使用了TCP作為傳輸層通信協(xié)議,所有客戶端與服務(wù)器進(jìn)行連接,然后通過與服務(wù)器的TCP連接進(jìn)行中轉(zhuǎn)通信??梢源_定騰訊是以多服務(wù)器提供服務(wù)、服務(wù)器總控客戶端、客戶端之間UDP直連通信的。騰訊的成功與其對的不斷創(chuàng)新和完善是分不開的。本人取
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1