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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文--基于vc的局域網(wǎng)聊天室(存儲(chǔ)版)

  

【正文】 MAP)())。 功能 實(shí)現(xiàn) 圖 7 服務(wù)器啟動(dòng)界面圖 運(yùn)行 VC,打開(kāi)服務(wù)端時(shí)啟動(dòng)界面如上。 在監(jiān)聽(tīng)端口過(guò)程中可能發(fā)生端口被占用的錯(cuò)誤信息,這樣就得重新設(shè)置端口了。i=csnum。 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 17 圖 8 用戶登入后聊天圖 void CTcpseverDlg::Onlisten() { CString ipstr,portstr。 if(port1024amp。 發(fā)送的聊天記錄 灰色了 可清空了 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 18 cw=GetDlgItem(IDC_EDIT4)。 } CString strServ,strPort。 } else{ MessageBox(端口輸入有誤 ,請(qǐng)重新輸入 )。再下面就是服務(wù)器信息。 (bit[index])。 wndGetWindowText(str)。這樣當(dāng)啟動(dòng)服務(wù)端后顯示出來(lái)的就是靜態(tài)文本了,這樣比較美觀。代碼見(jiàn)下: void CTcpseverDlg::OnLButtonDown(UINT nFlags, CPoint point) 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 20 { CWnd* wnd。 CDialog::OnLButtonDown(nFlags, point)。 圖 10 精簡(jiǎn)視圖 void CTcpseverDlg::OnShow() { // TODO: Add your control notification handler code here CString str。 =。 SetDlgItemText(IDC_SHOW,str)。rectSeparate)。在 OnClose 中可以設(shè)置一些代碼,給出相關(guān)操作。 }。 OnAccept 為當(dāng)連接成功后調(diào)用。 void CTcpseverDlg::oncl() { for(int i=1。 } 該函數(shù)是設(shè)置“清空”按鈕的狀態(tài)的,當(dāng)鼠標(biāo)在對(duì)話框中移動(dòng)時(shí)檢測(cè)狀態(tài)。 對(duì)于這 問(wèn)題 可謂 百思不得其解,在一次不經(jīng)意的學(xué)習(xí)中發(fā)現(xiàn)了阻塞這種說(shuō)法,雖然之前也知道 SOCKET 是 堵塞編程,但對(duì)阻塞一 詞 還是不明其意??墒沁@次的亂碼出現(xiàn)不同尋常,最后也沒(méi)一個(gè)很好的解釋,只有另尋他徑,完成設(shè)計(jì)。在 CSocket 中當(dāng)應(yīng) 用程序框架收到某些特殊事件的消息時(shí)會(huì)自動(dòng)調(diào)用某些函數(shù),在這些特殊的函數(shù)中可以寫(xiě)入自己武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 27 的代碼來(lái)完成某些事件。在聊天過(guò)程中當(dāng)消息到來(lái)時(shí)框架會(huì)自動(dòng)調(diào)用函數(shù)OnReceive,可以在這個(gè)函數(shù)內(nèi)部寫(xiě)入 函數(shù) Receive()接收 消息。 在成功完成文字聊天后也嘗試過(guò)發(fā)送語(yǔ)音信息, 在調(diào)用 API 函數(shù)檢測(cè)硬件 信息 時(shí)便出現(xiàn)了 問(wèn)題。當(dāng)點(diǎn)擊那片區(qū)域后隱藏靜態(tài)文本,顯示編輯框。 class csocket:public CSocket { public: void OnReceive(int i){ dlgonrev(mynum)。 }。 } 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 30 } 當(dāng)服務(wù)器斷開(kāi)后,服務(wù)器應(yīng)該釋放所有創(chuàng)建的套接字 ,并且發(fā)送退出信息 。i++) { if(csrev[i]) { csrev[i].Send(str,len)。 CMenu* pSysMenu = GetSystemMenu(FALSE)。 CString str。 CBitmap bitmap。 wnd=GetDlgItem(IDC_MARK)。 void CTcpseverDlg::Onlisten() { CString ipstr,portstr。 if(port1024amp。 cw=GetDlgItem(IDC_EDIT4)。 } CString strServ,strPort。 } else{ MessageBox(端口輸入有誤 ,請(qǐng)重新輸入 )。 index++。 } 當(dāng)點(diǎn)擊圖片時(shí),可以更換圖片。 wnd=GetDlgItem(IDC_SERVINFORM)。 } else{ MessageBox(綁定監(jiān)聽(tīng)端口失敗 ,請(qǐng)確認(rèn)該端口沒(méi)有被其它程序占用 )。 CWnd *cw=GetDlgItem(IDC_EDIT3)。 ()。 CDialog::OnLButtonDown(nFlags, point)。 void CTcpseverDlg::OnLButtonDown(UINT nFlags, CPoint point) { CWnd* wnd。 SetDlgItemText(IDC_EDIT3,亡羊哺狼 )。 // Set big icon SetIcon(m_hIcon, FALSE)。 0xFFF0) == IDM_ABOUTBOX)。 for(int i=1。 BOOL CTcpseverApp::InitInstance() { if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED)。 void setp(CTcpseverDlg * severdlg,int num){ mynum=num。這 也證實(shí)了 ,只有有了壓力才會(huì)拼命的去學(xué) ,只要不斷的努力,收獲總是有的 ??梢栽?某片區(qū)域擺放兩個(gè)控件,靜態(tài)文本和編輯框。 在 開(kāi)發(fā) 的過(guò)程中 原想 進(jìn)行更多研究,比如圖片發(fā)送、抖動(dòng)窗口、語(yǔ)音視頻發(fā)送、以及文件傳送等等。客戶端用函數(shù) Connect()請(qǐng)求連接,當(dāng)連接成功后框架自動(dòng)調(diào)用函數(shù) OnAceept()。 之后 學(xué)習(xí)了 CSocket 類及其實(shí)現(xiàn)過(guò)程,發(fā)現(xiàn)這是一種非阻塞的網(wǎng)絡(luò)編程,實(shí)現(xiàn)很簡(jiǎn)單,可以不用開(kāi)辟線程處理監(jiān)聽(tīng)等事件。接著問(wèn)題又出現(xiàn) 了,雖然成功的接受和發(fā)送了消息,但是消息最后會(huì)出現(xiàn)亂碼。 最 初 用 SOCKET 實(shí)現(xiàn)的時(shí)候, 設(shè)置 連接成功,但是整個(gè)服務(wù)器等待監(jiān)聽(tīng)以后便處于一種死鎖狀態(tài)。 } else 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 25 { GetDlgItem(IDC_CLEAN)EnableWindow(true)。 csrev[csnum].setp(this,csnum)。 }。 }。見(jiàn)下圖: 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 23 圖 11 提示斷開(kāi)連接 在 CSocket 中前面也提到過(guò),當(dāng)某個(gè)套接字獲取到消息與其連接的套接字?jǐn)嚅_(kāi)連接后。并把記錄下的數(shù)據(jù)填入 rectLarge 中 。 SetWindowPos(NULL,0,0,(),(),SWP_NOMOVE|SWP_NOZORDER )。 GetDlgItem(IDC_SEPARATE)GetWindowRect(amp。當(dāng)點(diǎn)擊后,側(cè)邊欄又顯示出 ” ” 符號(hào)。 wndShowWindow(SW_SHOW)。然后隱藏編輯框,顯示靜態(tài)文本。在設(shè)計(jì)的過(guò)程中對(duì)話框的初始化函數(shù)中對(duì)兩個(gè)控件做了設(shè)置。 CString str。 CBitmap bitmap。最后再把信息反饋到屏幕上打印出來(lái)。 wnd=GetDlgItem(IDC_SERVINFORM)。 } else{ MessageBox(綁定監(jiān)聽(tīng)端口失敗 ,請(qǐng)確認(rèn)該端口沒(méi)有被其它程序占用 )。 CWnd *cw=GetDlgItem(IDC_EDIT3)。 ()。函數(shù)先把以前聊天區(qū)的內(nèi)容存儲(chǔ)下來(lái),再把其要發(fā)送的內(nèi)和以前的內(nèi)容都打印到屏幕上。 int len=()。當(dāng)點(diǎn)擊清空后會(huì)清空聊天區(qū)的信息記錄。 這些代碼首先對(duì)窗口進(jìn)行了一些文本設(shè)置和某些窗口的隱藏。 (IDB_BITMAP1)。 wnd=GetDlgItem(IDC_MARKST)。 函數(shù) setp()起到了一個(gè)指針保護(hù)作用。 CEdit *ce=((CEdit*)GetDlgItem(IDC_EDIT1))。 csrev[mynum].Receive(ss,100)?,F(xiàn)在來(lái) 分析 onrev()在類 CTcpseverDlg 中的定義。 OnReceive()函數(shù)在 MSDN中的聲明是這樣的: virtual void OnReceive( int nErrorCode )。 }。如果沒(méi)有勾選也沒(méi)關(guān)系,只要在編程過(guò)程中正確加入相應(yīng)內(nèi)容即可!正確的向?qū)гO(shè)置會(huì)給你省去很多工作 [13]! 在開(kāi) 始程序之前先得創(chuàng)建一個(gè)派生于 CAsyncSocket 的類,當(dāng)然也可以直接派生于CSocket。 界面設(shè)計(jì) 圖 5 界面 資源圖 在設(shè)計(jì)的過(guò)程中,當(dāng)掌握了核心思想內(nèi)容,成功完成功能實(shí)現(xiàn)后,界面設(shè)計(jì)永遠(yuǎn)是重要的部分。進(jìn)入聊天室后用戶之間可以進(jìn)行簡(jiǎn)單的文字聊天。具體函數(shù)見(jiàn)下: ( 1) OnAccept(): 監(jiān)聽(tīng)套接字在端口聽(tīng)到連接請(qǐng)求時(shí) 應(yīng)用程序框架自動(dòng)調(diào)用,以告知可以接受請(qǐng)求或拒絕連接。 ( 3) Listen(): 監(jiān)聽(tīng)套接字專用,用于向監(jiān)聽(tīng)套接字發(fā)送對(duì)端口監(jiān)聽(tīng)的命令。 系統(tǒng)實(shí)現(xiàn)原理 聊天系統(tǒng)的設(shè)計(jì)跟普通網(wǎng)站設(shè)計(jì)有著許多不同的地方,普通網(wǎng)站設(shè)計(jì)所考慮的因素,例如,普通網(wǎng)站需要對(duì)布局進(jìn)入大量美化以及動(dòng)畫(huà)設(shè)計(jì)等等,而聊天室只要提供滿足訪客雙方直接實(shí)時(shí)聊天即可。 4) 返回第二步 ,等待客戶請(qǐng)求 。 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 7 4 局域網(wǎng)聊天室的設(shè)計(jì) 客戶機(jī) /服務(wù)器模式 通信的兩個(gè)應(yīng)用程序間相互作用的主要模式是客戶機(jī) /服務(wù)器模式 ,即客戶向服務(wù)器發(fā)出服務(wù)請(qǐng)求 ,服務(wù)器接收到請(qǐng)求后 ,提供相應(yīng)的服務(wù)。利用 Socket 進(jìn)行通訊 ,有兩種主要的方式。換句話說(shuō) ,網(wǎng)絡(luò)互連是兩個(gè)計(jì)算機(jī)或處理器通過(guò)網(wǎng)絡(luò)相互傳輸數(shù)據(jù)。在這個(gè)項(xiàng)目中 研究人員為 TCP/IP網(wǎng)絡(luò)通信開(kāi)發(fā)了一個(gè) API(應(yīng)用程序接口)。使用 ,可以完成創(chuàng)建、調(diào)試、修改應(yīng)用程序等的各種操作。并且在兩個(gè)客戶端之間不能建立直連的情況下,才由服務(wù)器進(jìn)行中轉(zhuǎn)通信。 第四章討論了整個(gè)聊天系統(tǒng)的設(shè)計(jì),介紹了客戶端 /服務(wù)器模型,并討論了系統(tǒng)的實(shí)現(xiàn)原理和界面設(shè)計(jì)。登錄后,客戶端各用戶可以發(fā)送文字信息,相互聊天。它的實(shí)現(xiàn)無(wú)需對(duì)企業(yè)原有的局域網(wǎng)硬件進(jìn)行任何改動(dòng),具有實(shí)現(xiàn)成本低廉的優(yōu)點(diǎn),它的使用能有效地降低局域網(wǎng)通信負(fù)荷,提高局域網(wǎng)的使用效率,可以很好地解決企業(yè)內(nèi)部局域網(wǎng)的各種通信需求。在內(nèi)部局域網(wǎng)的幫助下,企業(yè)得以簡(jiǎn)化信息流程,提高信息交換的速度,從而提高工作效率。 關(guān)鍵詞: VC++;套接字;傳輸控制協(xié)議;網(wǎng)絡(luò) ;聊天室 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) II Abstract Along with the highspeed development of the puter science and Inter, chatting on line has been an important method in our munication. Comparing with Email and telephone, the chatline service is more realtime and effective. The subject under discussion adopts the method of the software project ,use procedure designing technique and the work technology. The project use Visual C++ as the development tools,mainly studies under the TCP/IP protocol of LAN chat rooms. This local area work chat tool adopts client/server mechanism(C/S) and is posed of two ponents:the server and the client. The server model is mainly used to prootect all users ’ information ,incuuding user’s name and so on。 此局域網(wǎng)聊天 室 采用客戶端 /服務(wù)器( C/S)模式和 TCP 連接。 整個(gè)工程采用結(jié)構(gòu)化的方式進(jìn)行編譯,逐步完善系統(tǒng)功能。 本系統(tǒng)建立在 VC 平臺(tái)上,系統(tǒng)的設(shè)計(jì)使用了面向?qū)ο蠹夹g(shù)和面向?qū)ο蟮脑O(shè)計(jì)原則。 隨著 用戶 對(duì)軟件功能的 需求 不斷提高 ,即時(shí)通訊的產(chǎn)品也不斷 地更新?lián)Q代 。 基于 Socket 的局域網(wǎng)通信軟件應(yīng)用范圍廣闊,不但可以處理傳統(tǒng)的通信需求,而且也能擴(kuò)展以適應(yīng)新型的網(wǎng)絡(luò)應(yīng)用,如網(wǎng)絡(luò)教育,數(shù)據(jù)影音傳輸?shù)龋瑩碛袕V泛的應(yīng)用前景 。 研究本課題需要熟練掌握 VC++語(yǔ)言,并且熟悉 VC 平臺(tái) 的操作 , 利用 socket 編 程技術(shù) 、 TCP 協(xié)議 進(jìn)行局域網(wǎng)聊天軟件的實(shí)際開(kāi)發(fā)。本人取最具代表性的 和 MSN 進(jìn)行了一些研究,作為開(kāi)發(fā)聊天系統(tǒng)的準(zhǔn)備。而 MSN Messenger 所有數(shù)據(jù)都要經(jīng)過(guò)服務(wù)器,
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1