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

正文內容

畢業(yè)設計-c基于socket的網絡聊天室(參考版)

2024-12-05 16:02本頁面
  

【正文】 還要謝謝惠于我?guī)椭钠渌麕熼L和同學,謝謝你們!感謝四年以來眾多同學和朋友的幫助,大家一起在緊張的學習之余度過了許多愉快的時光。在此向各位老師表示深深的感謝。柳軍老師豐富的學識,嚴謹治學的科學態(tài)度,對學生的不倦教誨和對事業(yè)、學術精益求精的追求精神讓我受益匪淺。入學以來,各位老師一直以來的辛勤工作和教誨使我能順利地度過這難忘的四年,使我在綜合素質提高、專業(yè)理論知識學習和實踐工作能力等各方面受益匪淺。最后敬請各位老師和同學對論文和今后的研究工作提出寶貴的指導意見和建議。詳細介紹了些功能模塊。然后本文介紹了Microsoft Access的概述,發(fā)展,用途及本系統的數據庫設計以及對ODBC原理進行了簡單的介紹。此外,還得出一個結論:知識必須通過應用才能實現其價值!有些東西以為學會了,但真正到用的時候才發(fā)現是兩回事,所以我們認為只有到真正會用的時候才是真的學會了。不管學會的還是學不會的的確覺得困難比較多,真是萬事開頭難,不知道如何入手。自己要學習的東西還太多,以前老是覺得自己什么東西都會,什么東西都懂,有點眼高手低。畢業(yè)設計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。經過幾周的奮戰(zhàn)我們的畢業(yè)設計終于完成了??头瞬糠忠灿幸粋€自定義的消息處理函數,實現和服務器端基本相同。}這個處理函數為這個系統的核心部分,它完成了服務器對客戶端的所有事件響應和消息的傳遞。default:return 0。case FD_WRITE:return 0。ceLineScroll(ceGetLineCount()1)。SetDlgItemText(IDC_EDIT1,m_history+\r\n+stest)。 send(inforISocket,s,strlen(s),0)。}pos=()。ceLineScroll(ceGetLineCount()1)。SetDlgItemText(IDC_EDIT1,m_history+\r\n+name)。} send(inforISocket,stest,len,0)。while(pos!=NULL){ infor=(CUserInformation *)(pos)。 pos=()。(atoi(num))。)。AfxExtractSubString(outmes,stest,3,39。$39。)。AfxExtractSubString(num,stest,1,39。CString num。}d=(out$)。p=NULL。()。strcpy(de,nameisused$)。send(st,qte,strlen(qte),0)。 ()。=atoi(head)。=name。if (()) {//如果記錄集中不包含記錄或者程序已經滾動到最后一個記錄之后,則返回非零值;否則返回0。,name)。(select * from user where name=39。)。AfxExtractSubString(head,stest,3,39。$39。)。AfxExtractSubString(name,stest,1,39。}d=(reg$)。 } p=NULL。CEdit *ce=((CEdit*)GetDlgItem(IDC_EDIT1))。GetDlgItemText(IDC_EDIT1,m_history)。 send(inforISocket,mes,strlen(mes),0)。 if (inforISocket!=st) { send(st,user,strlen(user),0)。 mes += name+進入了聊天室!!!。 user +=he+$。 CString he。 user +=inforIName。 CString user。 //GetHeadPosition 返回的是鏈表頭元素的位置 //GetNext(pos) 如果該列表是通過為指針常量CObList訪問,然后返回一個CObject的指針。//返回值:第一個版本返回新插入的元素位置值 //添加一個新元素或元素列表此列表的尾部。 userInfo +=temp+$。 CString temp。 userInfo +=name。 CString userInfo。 strcpy(de,posswordok)。 cuISocket=st。 cuIName=name。 }else{ cuIIndex=。 closesocket(st)。 send(st,de,strlen(de),0)。 char de[20]=/0。 (AFX_DB_USE_DEFAULT_TYPE,strSQL)。%s39。%s39。CString strSQL。$39。)。if(d==0){AfxExtractSubString(name,stest,1,39。ste=(4)。recv(st,s,1024,0)。case FD_READ:st=wParam。switch(lParam){case FD_ACCEPT:st=accept(m_socketServer,NULL,NULL)。CString pass。char buf[10]=0。CUserInformation *infor=NULL。CString qte。CString stest。//CUserInformation為定義的存用戶信息的類SOCKET st。 AddListOnline函數為把用戶對應的頭像加到頭像列表中。ceLineScroll(ceGetLineCount()1)。SetDlgItemText(IDC_EDIT1,m_history+\r\n+name+進入了聊天室!!!)。 AddListOnline(cu)。} Sleep(175)。 send(inforISocket,userInfo,strlen(userInfo),0)。CString mes。(%d,inforIIndex)。user +=$。user =log$。// GetNext(pos) 如果該列表是通過為指針常量CObList訪問,然后返回一個CObject的指針。該列表可在操作前空pos=()。 (cu)。(%d,cuIIndex)。userInfo +=$。userInfo =log$。 用這種方式的好處是不用針對不同的字段類型,以不同的參數形式調用GetFieldValue()函數來完成數據庫里面的列數據的讀取。然后建立了一個CUserRecordSet類繼承自CRecordset這個類主要與Access的user表進行對應。CString IPassword。int IIndex。然后還建了一個CUserInformation類用于儲存用戶的一些資料。最下邊的區(qū)域為編寫自己的消息,然后通過發(fā)送按鈕發(fā)送出去 服務器端功能實現服務器端的界面和客服端聊天界面基本一樣,只是最上面的多了個啟動服務器按鈕 其中也用到了套接字非阻塞模式中的WSAAsyncSelect自定義了WM_SERVER消息及處理函數LRESULT CChatSeverDlg::OnServer(WPARAM wParam,LPARAM lParam)這個函數也是其處理核心。其中WM_CLIENT為自定義的消息然后為它定義了一個消息處理函數LRESULT CChatClientDlg::OnClient(WPARAM wParam,LPARAM lParam)其中主要判斷l(xiāng)Param 為FD_CONNECT FD_READ FD_WRITE還是FD_CLOSE以及對相關情況進行處理其中FD_READ情況為主,包含了登錄的情況,其他用戶退出的情況以及正常發(fā)送消息的情況。 s 標識一個需要事件通知的套接口的描述符.hWnd 標識一個在網絡事件發(fā)生時需要接收消息的窗口句柄.wMsg 在網絡事件發(fā)生時要接收的消息.lEvent 位屏蔽碼,用于指明應用程序感興趣的網絡事件集合.注釋:本函數用來請求Windows Sockets DLL為窗口句柄發(fā)一條消息-.本函數自動將套接口設置為非阻塞模式.lEvent參數由下表中列出的值組成.值意義:FD_READ 欲接收讀準備好的通知.FD_WRITE 欲接收寫準備好的通知.FD_OOB 欲接收帶邊數據到達的通知.FD_ACCEPT 欲接收將要連接的通知.FD_CONNECT 欲接收已連接好的通知.FD_CLOSE 欲接收套接口關閉的通知.   啟動一個WSAAsyncSelect()將使為同一個套接口啟動的所有先前的WSAAsyncSelect()作廢. 例如,要接收讀寫通知,應用程序必須同時用FD_READ和FD_WRITE調用WSAAsyncSelect(),如下:rc = WSAAsyncSelect(s, hWnd, wMsg, FD_READ|FD_WRITE)。//插入列表視圖控件中的新列 return TRUE。//該函數獲取窗口客戶區(qū)的坐標。//CRect類與Windows RECT結構相似,并且還包括操作CRect對象和Windows RECT結構的成員函數//RECT結構定義了矩形的左上角坐標和右下角坐標(amp。//指定一個圖象列表到列表視圖控件//CListCtrl類封裝“列表視圖控件”功能,顯示每個包含圖標(列表視圖中)和標簽的收集。//添加一個或多個圖象到圖象列表中}(amp。 i=6。下面就是消息區(qū):左邊為在線用戶列表,其中每一項為用戶的頭像和用戶名初始化列表為一個函數,如下:BOOL CChatClientDlg::InitListCtrl(){//圖像列表控制(CImageList)是相同大小圖像的一個集合,每個集合中均以0為圖像的索引序號基數,圖像列表通常由大圖標或位圖構成,其中包含透明位圖模式(32, 32, ILC_MASK|ILC_COLOR8, 0, 7)。進行調用。 頭文件中定義了個CString SIP 。之后進入聊天界面。把用戶名,密碼等信息用Socket傳給服務器,返回posswordok字符串及登錄成功。當服務器返回RegisterOK$字符串時及表示登錄成功。功能:彈出注冊界面注冊界面中可以輸入用戶名,密碼,可以選擇頭像。界面上有3個button按鈕。 CPublic為一
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1