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

正文內(nèi)容

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

2025-02-01 17:57上一頁面

下一頁面
  

【正文】 后, 客戶端斷開連接要提示給用戶。 int mynum。 if(m_recvCtr==) { GetDlgItem(IDC_CLEAN)EnableWindow(false)。線程函數(shù)定義為 全局函數(shù)(也可以使某個類的靜態(tài)函數(shù)),為什么線程里的數(shù)據(jù)不能直接傳送呢?最后只得采用 PostMessage()的方法將消息 回傳, 這次 成功的完成了消息傳遞。 服務(wù)器監(jiān)聽時要設(shè)置監(jiān)聽端口,創(chuàng)建監(jiān)聽套接字,這樣客戶端才可以成功監(jiān)聽。 當時很疑惑為什么點中了就可以變成編輯框?qū)懭胛淖?, 反復思考斟酌最后還是知道該如何實現(xiàn)。 }。 len=()。 } } SetIcon(m_hIcon, TRUE)。 // return TRUE unless you set the focus to a control } 點擊對話框的任意地方,確定輸入信息。 ()。 cwSetWindowText(本服務(wù)器名稱為 : +severname+\r\n 正在后臺等待用戶連接 ,監(jiān)聽端口 :+portstr+?? )。 } CDialog::OnMouseMove(nFlags, point)。 } } 當移動鼠標,可以判斷是否可以清空聊天窗口的信息。 cwEnableWindow(false)。 int port。 (IDB_BITMAP1)。 if (pSysMenu != NULL) { CString strAboutMenu。 void CTcpseverDlg::OnClose() { CString str。 }。對于未知的錯誤信息總是難以下手,在網(wǎng)上也找到了很多有關(guān)這些錯誤的解決方法,不過最終沒有成功完成語音的發(fā)送。 CSocket 是在 CAsyncSocket 基礎(chǔ)上擴展的類, CAsyncSocket 封裝了很多函數(shù),其中的OnAccept、 OnSend、 OnReceive、 OnClose、 OnConnect 函數(shù)被應用程序框架自動調(diào)用。 在后來的學習中終于了解到多線程編程的重要性 , 之前的 整個 程序只有 一個主線程,線程一直會停留在監(jiān)聽狀態(tài),程序肯定不能運行其他功能 ! 發(fā)現(xiàn)問題后又開始學習多線程編程,準備分出一條線程處理監(jiān)聽事件 ,其它的線程處理其它事件 。i=csnum。 void setp(CTcpseverDlg * severdlg,int num){ mynum=num。記錄矩形區(qū)域信息。 =。 } 該函數(shù)當點擊對話框時會被系統(tǒng)自動調(diào)用,函數(shù) 將編輯框中上的內(nèi)容設(shè)置到了靜態(tài)文本中,然后顯示靜態(tài)文本,隱藏了編輯框。 上面函數(shù)意思為當點擊靜態(tài)文本時,先獲取文本中的內(nèi)容,然后將其隱藏。 (0,SS_BITMAP)。 } } 前面一部分代碼捕捉了端口號,但是端口號是以字符串的形式處理的,而不是數(shù)字。 cwEnableWindow(false)。 int port。當然從 102565535 之間的端口不可能被全部占用。 return TRUE。 return FALSE。i=csnum。該代碼意為用對象 dlg 調(diào)用函數(shù) onrev(), onrev()在類 CTcpseverDlg 中做了聲明和定義, 后續(xù)會 去分析這個函數(shù)。代碼如下: class csocket:public CSocket { public: 注意勾選這項了! 武漢理工大學畢業(yè)設(shè)計(論文) 13 void OnReceive(int i){ dlgonrev(mynum)。當用戶進入聊天室后,服務(wù)器會發(fā)送相應的消息通知該用戶進入了聊天室。 ( 6) Send(): 用于向套接字發(fā)送數(shù)據(jù)。 2) 向服務(wù)器發(fā)服務(wù)請求 ,等待并接收應答 。其過程好像客戶機在給服務(wù)器打電話 ,只有服務(wù)器拿起了聽 筒 ,才有可能開始傳輸數(shù)據(jù) ,這種方式對應的 TCP 協(xié)議。 套接字是從英文單詞 socket 翻譯過來的 , ( Socket 在英文中是插座的意思 ,在這里設(shè)計者實際上是暗指 電話插座。而 MSN Messenger 所有數(shù)據(jù)都要經(jīng)過服務(wù)器,服務(wù)器壓力可想而知(難怪平時很少見到使用 MSN 進行語音視頻聊天的)。 研究本課題需要熟練掌握 VC++語言,并且熟悉 VC 平臺 的操作 , 利用 socket 編 程技術(shù) 、 TCP 協(xié)議 進行局域網(wǎng)聊天軟件的實際開發(fā)。 隨著 用戶 對軟件功能的 需求 不斷提高 ,即時通訊的產(chǎn)品也不斷 地更新?lián)Q代 。 整個工程采用結(jié)構(gòu)化的方式進行編譯,逐步完善系統(tǒng)功能。 關(guān)鍵詞: VC++;套接字;傳輸控制協(xié)議;網(wǎng)絡(luò) ;聊天室 武漢理工大學畢業(yè)設(shè)計(論文) 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。它的實現(xiàn)無需對企業(yè)原有的局域網(wǎng)硬件進行任何改動,具有實現(xiàn)成本低廉的優(yōu)點,它的使用能有效地降低局域網(wǎng)通信負荷,提高局域網(wǎng)的使用效率,可以很好地解決企業(yè)內(nèi)部局域網(wǎng)的各種通信需求。 第四章討論了整個聊天系統(tǒng)的設(shè)計,介紹了客戶端 /服務(wù)器模型,并討論了系統(tǒng)的實現(xiàn)原理和界面設(shè)計。使用 ,可以完成創(chuàng)建、調(diào)試、修改應用程序等的各種操作。換句話說 ,網(wǎng)絡(luò)互連是兩個計算機或處理器通過網(wǎng)絡(luò)相互傳輸數(shù)據(jù)。 武漢理工大學畢業(yè)設(shè)計(論文) 7 4 局域網(wǎng)聊天室的設(shè)計 客戶機 /服務(wù)器模式 通信的兩個應用程序間相互作用的主要模式是客戶機 /服務(wù)器模式 ,即客戶向服務(wù)器發(fā)出服務(wù)請求 ,服務(wù)器接收到請求后 ,提供相應的服務(wù)。 系統(tǒng)實現(xiàn)原理 聊天系統(tǒng)的設(shè)計跟普通網(wǎng)站設(shè)計有著許多不同的地方,普通網(wǎng)站設(shè)計所考慮的因素,例如,普通網(wǎng)站需要對布局進入大量美化以及動畫設(shè)計等等,而聊天室只要提供滿足訪客雙方直接實時聊天即可。具體函數(shù)見下: ( 1) OnAccept(): 監(jiān)聽套接字在端口聽到連接請求時 應用程序框架自動調(diào)用,以告知可以接受請求或拒絕連接。 界面設(shè)計 圖 5 界面 資源圖 在設(shè)計的過程中,當掌握了核心思想內(nèi)容,成功完成功能實現(xiàn)后,界面設(shè)計永遠是重要的部分。 }?,F(xiàn)在來 分析 onrev()在類 CTcpseverDlg 中的定義。 CEdit *ce=((CEdit*)GetDlgItem(IDC_EDIT1))。 wnd=GetDlgItem(IDC_MARKST)。 這些代碼首先對窗口進行了一些文本設(shè)置和某些窗口的隱藏。 int len=()。 ()。 } else{ MessageBox(綁定監(jiān)聽端口失敗 ,請確認該端口沒有被其它程序占用 )。最后再把信息反饋到屏幕上打印出來。 CString str。然后隱藏編輯框,顯示靜態(tài)文本。當點擊后,側(cè)邊欄又顯示出 ” ” 符號。 SetWindowPos(NULL,0,0,(),(),SWP_NOMOVE|SWP_NOZORDER )。見下圖: 武漢理工大學畢業(yè)設(shè)計(論文) 23 圖 11 提示斷開連接 在 CSocket 中前面也提到過,當某個套接字獲取到消息與其連接的套接字斷開連接后。 }。 } else 武漢理工大學畢業(yè)設(shè)計(論文) 25 { GetDlgItem(IDC_CLEAN)EnableWindow(true)。接著問題又出現(xiàn) 了,雖然成功的接受和發(fā)送了消息,但是消息最后會出現(xiàn)亂碼。客戶端用函數(shù) Connect()請求連接,當連接成功后框架自動調(diào)用函數(shù) OnAceept()??梢栽?某片區(qū)域擺放兩個控件,靜態(tài)文本和編輯框。 void setp(CTcpseverDlg * severdlg,int num){ mynum=num。 for(int i=1。 // Set big icon SetIcon(m_hIcon, FALSE)。 void CTcpseverDlg::OnLButtonDown(UINT nFlags, CPoint point) { CWnd* wnd。 ()。 } else{ MessageBox(綁定監(jiān)聽端口失敗 ,請確認該端口沒有被其它程序占用 )。 } 當點擊圖片時,可以更換圖片。 } else{ MessageBox(端口輸入有誤 ,請重新輸入 )。 cw=GetDlgItem(IDC_EDIT4)。 void CTcpseverDlg::Onlisten() { CString ipstr,portstr。 CBitmap bitmap。 CMenu* pSysMenu = GetSystemMenu(FALSE)。 } 武漢理工大學畢業(yè)設(shè)計(論文) 30 } 當服務(wù)器斷開后,服務(wù)器應該釋放所有創(chuàng)建的套接字 ,并且發(fā)送退出信息 。 class csocket:public CSocket { public: void OnReceive(int i){ dlgonrev(mynum)。 在成功完成文字聊天后也嘗試過發(fā)送語音信息, 在調(diào)用 API 函數(shù)檢測硬件 信息 時便出現(xiàn)了 問題。在 CSocket 中當應 用程序框架收到某些特殊事件的消息時會自動調(diào)用某些函數(shù),在這些特殊的函數(shù)中可以寫入自己武漢理工大學畢業(yè)設(shè)計(論文) 27 的代碼來完成某些事件。 對于這 問題 可謂 百思不得其解,在一次不經(jīng)意的學習中發(fā)現(xiàn)了阻塞這種說法,雖然之前也知道 SOCKET 是 堵塞編程,但對阻塞一 詞 還是不明其意。 void CTcpseverDlg::oncl() { for(int i=1。 }。rectSeparate)。 =。 CDialog::OnLButtonDown(nFlags, point)。這樣當啟動服務(wù)端后顯示出來的就是靜態(tài)文本了,這樣比較美觀。 (bit[index])。 } else{ MessageBox(端口輸入有誤 ,請重新輸入 )。 發(fā)送的聊天記錄 灰色了 可清空了 武漢理工大學畢業(yè)設(shè)計(論文) 18 cw=GetDlgItem(IDC_EDIT4)。 武漢理工大學畢業(yè)設(shè)計(論文) 17 圖 8 用戶登入后聊天圖 void CTcpseverDlg::Onlisten() { CString ipstr,portstr。 在監(jiān)聽端口過程中可能發(fā)生端口被占用的錯誤信息,這樣就得重新設(shè)置端口了。 ((HBITMAP)())。 部分代碼如下: if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED)。 for(i=1。在函數(shù)的實現(xiàn)中 加入了自己的代碼: dlgonrev(mynum)。當有相關(guān)消息到來時,應用框架會自動調(diào)用這些函數(shù),從而可以比較方便的實現(xiàn)套接字之間的信息傳輸。這樣登入服務(wù)器的用戶們之間就可以進行簡單的文字聊天了。 ( 5) Accept(): 監(jiān)聽套接字專用,用于接受客戶端通過網(wǎng)絡(luò)發(fā)送的連接請求,建立連接。 客戶方 : 1) 打開一通信通道 ,并連接到服務(wù)器所在主機的特定端口 。在這種方式下 ,兩個通訊的應用程序之間先要建立一種虛擬的連接。今天,SOCKET 接口是 TCP/IP 網(wǎng)絡(luò)最為通用的 API,也是 INTERNET 上進行應用開發(fā)最為通用的 API。 武漢理工大學畢業(yè)設(shè)計(論文) 4 圖 2 MSN 服務(wù)器 客戶端模型 騰訊使用的模型中,服務(wù)器主要處理客戶端各種狀態(tài)的控制,可以極大
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1