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

正文內(nèi)容

基于tcp協(xié)議網(wǎng)上聊天程序(參考版)

2025-06-03 12:00本頁面
  

【正文】 “l(fā)ucy”客戶下線后,服務(wù)器運行結(jié)果 “l(fā)ucy”客戶下線后,“kitty”客戶運行結(jié)果參考文獻(xiàn) [1],西安:西安電子科技大學(xué)出版社, [2] ++程序設(shè)計教程,北京:機(jī)械工業(yè)出版社, [3](第2版),北京:清華大學(xué)出版社, [4] (第二版),清華大學(xué)出版社 [5] 郎銳 C++ 網(wǎng)絡(luò)通信程序開發(fā)指南,北京:機(jī)械工業(yè)出版社,第 20 頁 共 22 頁?!?。 服務(wù)器初始化運行結(jié)果(2) 再運行兩個用戶端,分別用客戶名是“kitty” 和“l(fā)ucy”登陸。希望老師給予指正。 某用戶登錄或退出程序時都需要給服務(wù)器發(fā)送一個消息以通知其他用戶。 聊天發(fā)送的消息包括:用戶名稱、發(fā)送時間及正文。此次課設(shè)用的是C++語言編程完成,程序代碼達(dá)到了老師的要求,代碼長度有400多行,實現(xiàn)了基于TCP協(xié)議網(wǎng)上聊天程序,該程序并具有如下的功能: 登錄時只需要提供用戶名即可,無需輸入密碼。 另外就是知識方面的問題,計算機(jī)網(wǎng)絡(luò)和windows Sockets 有很多方面的知識還是很不熟悉,具體用到的時候就感覺生疏,或者還是缺乏設(shè)計方面的實踐。 課程設(shè)計項目的雖然要求是獨立完成,但還是很多問題的解決離不開老師的指導(dǎo)及同學(xué)之間的探討,這些在做項目的時候都是必不可少的。在具體做的過程中,參考了資料書還有學(xué)長的一些程序,雖然這個聊天室的界面及功能比較簡單,但從代碼的編寫及結(jié)果的調(diào)試成功還是花了很多的心思。設(shè)計期間有許多的感觸、想法、經(jīng)驗、教訓(xùn),對以后的學(xué)習(xí)、工作有很大的益處。整個設(shè)計過程是不斷學(xué)習(xí),不斷發(fā)現(xiàn)問題、分析問題、解決問題的過程。在這段時間里體驗了無數(shù)的酸甜苦辣,從解決不了細(xì)小問題的苦惱到問題最終解決的喜悅。 j++) //更新在線用戶列表 { (array[j])。 for(int j=0。 } else { array[b] = array[b] + user_info[i]。39。 i++ ) //查找當(dāng)前在線用戶 { if(i != (() 1)) { if ( user_info[i]==39。 for( int i=0。 CString array[100]。 m_pSocketReceive(buff, sizeof(buff),0)。} (8)其他客戶下線后,客戶端更新在線用戶列表,具體代碼如下:void CMyChatDlg::UpdateUser(){ char buff[1000]。 //關(guān)閉與下線客戶連接的套接字 delete this。 //顯示客戶下線信息 m_dlgServerUpdateUser(this)。 CString strTemp = t + : + thism_strName + 離開\r\n。 CString t = (%Y%m%d %H:%M:%S)。 if(pos != NULL) { clistRemoveAt(pos)。 //顯示接受到的信息 return TRUE。 strTemp += _T(\r\n)。 m_pSocketReceive(buff, sizeof(buff),0)。} (6)客戶端接收服務(wù)器轉(zhuǎn)發(fā)的消息,具體代碼如下: BOOL CMyChatDlg::GetMessage() //接受服務(wù)器轉(zhuǎn)發(fā)的信息{ char buff[1000]。 currSend(buff, sizeof(buff))。 while (pos != NULL) //將消息發(fā)至在線客戶 { curr = (CClientSocket *)clistGetNext(pos)。 //接收消息內(nèi)容 CClientSocket *curr = NULL。 memset(buff,0,sizeof(buff))。 m_dlgServerUpdateUser(this)。 //顯示登錄信息 p_EditReplaceSel(strTemp)。 //時間格式 CEdit *p_Edit = (CEdit *)::AfxGetMainWnd()GetDlgItem(IDC_EDIT_INFO)。 //接受客戶登錄信息 CTime time = CTime::GetCurrentTime()。 memset(buff,0,sizeof(buff))。 char type = headertype。 Header *header = (Header*)buff1。 memset(buff1, 0, sizeof(buff1))。 }else { AfxMessageBox(_T(網(wǎng)絡(luò)傳輸錯誤!))。 CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_MESSAGE)。 //將發(fā)送時間和收信客戶信息發(fā)至服務(wù)器 if(m_pSocketSend((LPCTSTR)str, ())) //發(fā)送信息內(nèi)容 { m_strMessage = 。 m_pSocketSend((char *)amp。 CString nikeName = 。 CTime time = CTime::GetCurrentTime()。 = SEND_MESSAGE。 return。 CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_MESSAGE)。} (4)客戶發(fā)送消息,先將消息發(fā)至服務(wù)器,具體代碼如下:void CMyChatDlg::OnSend() { UpdateData()。 currSend(buff, sizeof(buff))。 while (pos != NULL) //將消息發(fā)至在線客戶 { curr = (CClientSocket *)clistGetNext(pos)。
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1