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

正文內(nèi)容

vc局域網(wǎng)聊天程序修正(參考版)

2025-07-10 12:08本頁面
  

【正文】 最后感謝孫鑫老師,他的視頻教學給了我很大的啟發(fā),可以說是VC深入學習的啟蒙老師。在論文撰寫過程中,老師認真的分析每個同學的論文,并且找出相應的錯誤,督促我們改正!其次要感謝熱情可愛的同學們,在開發(fā)的過程中遇到了很多問題,同學們都積極的指出并幫助解決。在畢業(yè)設計的選題過程中,老師對每個同學都給出了針對性的建議,根據(jù)以后的工作選擇合適的課題。參考文獻[1] 李凌.WinSock 2網(wǎng)絡編程實用教程[M].北京:清華大學出版社,2005.[2] 孫鑫,++深入詳解[M].北京:電子工業(yè)出版社,2006.[3] Jackson M A. Principles of Program Design[M].Houston:Academic Press,2000.[4] [M].武漢:華中科技大學出版社,2001.[5] 馮宏華,徐瑩.C++應用程序性能優(yōu)化[M].北京:電子工業(yè)出版社,2007.[6] 張虹.軟件工程與軟件開發(fā)工具[M].北京:清華大學出版社,2009.[7] 羅軍舟. TCP/IP協(xié)議及網(wǎng)絡編程技術[M].北京:清華大學出版社,2008.[8] C++網(wǎng)絡程序設計實例詳解[M].北京:人民郵電出版社,2006.[9] Bruce Eckel.Thinking in C++[M].北京:機械工業(yè)出版社,2009.[10] [M].北京:清華大學出版社,2007.[11] [M].北京:清華大學出版社,2007.[12] [M].北京:清華大學出版社,2002.[13] 陳世鴻,彭蓉. 面向對象軟件工程[M]. 北京:電子工業(yè)出版社,1999.[14] Programmingfor Microsoft Windows[M] .Microsoft press,2002. [15] [M].北京:高等教育出版社,2002.致 謝畢業(yè)論文即將完成,我的學生生涯也要告一段落了。但是通過不斷的努力學習,終于有所收獲,成功解決眾多問題。在整個軟件開發(fā)的過程中,感覺自己做的不是很好,尤其是時間上的安排不是很合理。當移動鼠標點擊那塊區(qū)域以外的任何一個區(qū)域時便顯示靜態(tài)文本,隱藏編輯框。靜態(tài)文本用于顯示文字,編輯框用于編輯輸入文字。當時很疑惑為什么點中了就可以變成編輯框寫入文字,反復思考斟酌最后還是知道該如何實現(xiàn)。對騰訊軟件的寫入狀態(tài)比較感興趣。對于未知的錯誤信息總是難以下手,在網(wǎng)上也找到了很多有關這些錯誤的解決方法,不過最終沒有成功完成語音的發(fā)送。但是發(fā)現(xiàn)自己掌握的知識有限,并且時間短暫,所以只實現(xiàn)了文字聊天功能。多服務器的連入很有必要,可以解決信息堵塞問題[15]。所以服務器的工作量非常大。當某個用戶退出聊天室后,框架會自動調(diào)用函數(shù)OnClose(),這樣就可以實時的獲取用戶的活動情況,正確的顯示在線狀態(tài),并發(fā)送用戶退出信息。然后連入服務器的客戶端就可以進行聊天了。服務器監(jiān)聽時要設置監(jiān)聽端口,創(chuàng)建監(jiān)聽套接字,這樣客戶端才可以成功監(jiān)聽。但需要注意的是,這些都是虛函數(shù),在使用前必須構建新的繼承于CAsyncSocket或CSocket的類,再在類中重新定義這些函數(shù)完成調(diào)用。CSocket是在CAsyncSocket基礎上擴展的類,CAsyncSocket封裝了很多函數(shù),其中的OnAccept、OnSend、OnReceive、OnClose、OnConnect函數(shù)被應用程序框架自動調(diào)用。鑒于CSocket確實有很多可取之處,而發(fā)送消息出現(xiàn)亂碼問題始終沒有解決,所以最后采用了CSocket完成了任務。而且全局變量可能會出現(xiàn)重復定義問題,使編譯出現(xiàn)錯誤。C++的優(yōu)點便在于多態(tài)的實現(xiàn)和程序的封裝,程序員會盡量去提高整個程序的低耦合度,讓開發(fā)的程序便于移植。需要指出的一點,不提倡使用全局函數(shù)和變量是有原因的。對于出現(xiàn)亂碼的問題一般是數(shù)組越界訪問才會發(fā)生,在設計的過程中最好是對數(shù)組進行安全性檢測。線程函數(shù)定義為全局函數(shù)(也可以是某個類的靜態(tài)函數(shù)),為什么線程里的數(shù)據(jù)不能直接傳送呢?最后只得采用PostMessage()的方法將消息回傳,這次成功的完成了消息傳遞。線程函數(shù)可聲明為全局函數(shù)或者是類的靜態(tài)函數(shù),為了維護代碼的封裝性,開發(fā)中選擇了后者。在后來的學習中終于了解到多線程編程的重要性,之前的整個程序只有一個主線程,線程一直會停留在監(jiān)聽狀態(tài),程序肯定不能運行其他功能!發(fā)現(xiàn)問題后又開始學習多線程編程,準備分出一條線程處理監(jiān)聽事件,其它的線程處理其它事件。雖然客戶端成功接入,但是服務端始終不能進行任何操作,甚至會出現(xiàn)無響應情況。雖然MFC封裝了很多有關套接字的API函數(shù),但實現(xiàn)起來也不簡單,對底層數(shù)據(jù)分析和實現(xiàn)要求較高[14]。6 結論在剛進行該應用軟件開發(fā)的時,可謂難以下手,對VC編程有所了解,但是網(wǎng)絡一塊很少涉及,經(jīng)過學習和請教知道了套接字可以實現(xiàn)網(wǎng)絡數(shù)據(jù)傳輸。當屏幕內(nèi)容不為空時。 } CDialog::OnMouseMove(nFlags, point)。 if(m_recvCtr==) { GetDlgItem(IDC_CLEAN)EnableWindow(false)。}當服務器退出后,要釋放服務器創(chuàng)建的套接字資源,這個函數(shù)也就是起到了這個作用。i=csnum。}Onac函數(shù)作用是接受連接,并且讓連接的套接字計數(shù)加一。void CTcpseverDlg::onac(){ (csrev[++csnum])。寫入自己的函數(shù)。OnClose為當失去連接后系統(tǒng)自動調(diào)用。代碼中OnReceive是當有消息到來時,框架調(diào)用該函數(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)。服務端中,要派生出自己的csocket類,基類可以選擇CAsyncSocket也可以是CSocket。系統(tǒng)會自動獲取該消息,并有應用程序框架自動調(diào)用函數(shù)OnClose。值得注意的一點是,當服務器退出后,客戶端斷開連接要提示給用戶。根據(jù)Z規(guī)則,設置某個視圖在最上方,這樣就成功的隱藏了要截取的區(qū)域。記錄矩形區(qū)域信息。然后設置要裁剪的區(qū)域,同樣的方式用GetDlgItem(IDC_SEPARATE)GetWindowRect(amp。這個函數(shù)就是記錄下整個對話框的大小尺寸等信息。GetWindowRect(amp。SetWindowPos(NULL,0,0,(),(),SWP_NOMOVE|SWP_NOZORDER )。 } else { str=\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n。 SetDlgItemText(IDC_SHOW,str)。 =。 =。rectSeparate)。rectLarge)。 CRect rectSeparate。 static CRect rectLarge。再次點擊又會還原出來。這樣可以去掉不是很關心的內(nèi)容。這個可以去理解一下。}該函數(shù)當點擊對話框時會被系統(tǒng)自動調(diào)用,函數(shù)將編輯框中上的內(nèi)容設置到了靜態(tài)文本中,然后顯示靜態(tài)文本,隱藏了編輯框。 wndSetWindowText(str)。 wnd=GetDlgItem(IDC_MARKST)。 wndGetWindowText(str)。 CString str。這樣就要建立一個系統(tǒng)響應函數(shù),對MouseClick消息做一個捕獲。設置好文本后,點擊編輯框以外的任何地方,都可以把內(nèi)容做更新。這樣就可以和設置心情一樣的設置文本內(nèi)容了。上面函數(shù)意思為當點擊靜態(tài)文本時,先獲取文本中的內(nèi)容,然后將其隱藏。將靜態(tài)文本顯示,編編輯框隱藏,并且設置靜態(tài)文本中的內(nèi)容和編輯框一樣。}這是公布框的設計,其實在同一區(qū)域中擺放了兩個控件,一個靜態(tài)文本,一個編輯框。 wndShowWindow(SW_SHOW)。 wndShowWindow(SW_HIDE)。 wnd=GetDlgItem(IDC_MARKST)。void CTcpseverDlg::OnMarkst() { CWnd* wnd。}這是點擊改變圖片的代碼,在VC中,ID號其實就是一些整數(shù)的標記,把ID存入一個整型數(shù)組中,實現(xiàn)每點擊圖片一次自動更換ID。 (0,SS_BITMAP)。 int bit[5]={IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP5}。 index=index%5。貼出部分實現(xiàn)代碼:void CTcpseverDlg::OnPic() { static int index。打印出了服務器的監(jiān)聽端口號,昵稱等等,這些由程序動態(tài)獲取。右邊有個圖片設置,可以點擊圖片更改到下一幅。然后通過EnableWindow()把某些窗體設置為不可點擊。這樣防止了用戶某些習慣性輸入錯誤。 }}前面一部分代碼捕捉了端口號,但是端口號是以字符串的形式處理的,而不是數(shù)字。 wndSetWindowText(\n****************服務器名稱:\n+strServ+\n\n端口號: +strPort+\n\n協(xié)議類型:TCP\n傳輸控制協(xié)議\n****************)。 wndGetWindowText(strPort)。 w
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1