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

正文內(nèi)容

基于udp協(xié)議的網(wǎng)絡(luò)聊天工具設(shè)計(參考版)

2025-10-20 18:27本頁面
  

【正文】 希望在以后我們能充分利用實習(xí)的機會充實自己,并希望 有更多的 這樣的 實踐 機會。 總的來說 通過本次實驗,我學(xué)習(xí)到了許多東西 ,增強了一定的實踐能力 。 本課程設(shè)計是 設(shè)計一個程序,實現(xiàn)聊天功能,要求有客戶端和服務(wù)器端 。在實驗中,我們可以把這學(xué)期所學(xué)的理論知識和實踐聯(lián)系起來,在所要設(shè)計的程序中漸漸融會貫通。程序的不足在與當客戶端直接關(guān)閉時,服務(wù)器沒有能響應(yīng)將鏈表中的對應(yīng) IP 值刪除,還需要改進。服務(wù)器端對消息的轉(zhuǎn)發(fā)以及服務(wù)器消息的廣播實現(xiàn)是通過對保存 IP 的鏈表進行遍歷。 重慶科技學(xué)院《 Windows 程序設(shè)計 》課程設(shè)計報告 13 圖 43 服務(wù)器端消息收發(fā)圖 設(shè)計分析 因為該程序 是 利用 無連接的 UDP 協(xié)議 實現(xiàn)功能需求的,所以在建立套接字的過程中,不需要 調(diào)用 listen函數(shù)進行監(jiān)聽,也不調(diào)用 accept 函數(shù)建立連接 。當客戶端選擇斷開時,向服務(wù)器發(fā)送斷開連接信息,然后斷開。 重慶科技學(xué)院《 Windows 程序設(shè)計 》課程設(shè)計報告 12 4 設(shè)計結(jié)果與分析 設(shè)計結(jié)果 下面使用一些程序運行的截圖的對程序最終 結(jié)果進行 簡單 的闡述: 下圖是客戶端 連接服務(wù)器圖,開啟了客戶端后先輸入用戶的呢稱再輸入服務(wù)器的 IP 地址,然后電擊連接按鈕程 序便發(fā)送出連接請求信息,如過在設(shè)定的時間內(nèi)沒有收到應(yīng)答,則彈出連接失敗提示,如下圖: 圖 41 客戶端連接服務(wù)器 圖 當連接成功后,客戶端的接收窗口會顯示連接成功的提示,下圖可見。 sendto(m_sockLocal, bufDisConnect, 11, 0, (SOCKADDR*)amp。 return 0。 } strcat(buf,\r\n)。 AfxMessageBox(TEXT(連接服務(wù)器失敗 !!))。 } Checked = 0。 return 0。 (buf)。 i80。amp。m_fromlen)。 recvfrom(m_sockLocal, buf, 1040, 0, (SOCKADDR*)amp。 int i。 } 重慶科技學(xué)院《 Windows 程序設(shè)計 》課程設(shè)計報告 11 //在接收時判斷信息 LRESULT CUDPClientDlg::OnSocket(WPARAM wParam, LPARAM lParam) { if (LOWORD(lParam) != FD_READ) return 0。m_addrto, sizeof(m_addrto))。 = htons(8008)。 = i_addr(m_Str_IP)。 return。 UpdateData(TRUE)。若連接成功后用戶點擊斷開連接按鈕,則程序向服務(wù)器端發(fā)出斷開連接信息。m_addrto, sizeof(m_addrto))。m_fromlen)。 //收發(fā)信息 recvfrom(m_sockLocal, buf, 1040, 0, (SOCKADDR*)amp。m_addr_in, sizeof(m_addr_in))。 //協(xié)議族 = htons(9001)。 //選擇需要處理的網(wǎng)絡(luò)時間 = i_addr(m_Str_IP)。 //初始化套接字 m_sockLocal = socket(AF_INET, SOCK_DGRAM, 0)。 開始初始化Wi n S o ck環(huán) 境發(fā)送連接信息并等待回應(yīng)輸入服務(wù)器I P 地址等是否連接成功?消息發(fā)送和接收是否為斷開消息?YNNY 圖 33 客戶端程序流程圖 客戶 端界面設(shè)計 與服務(wù)器端的界面設(shè)計相同,只需根據(jù)需求設(shè)計出相應(yīng)的控件,客戶端界面設(shè)計如下圖所示: 圖 34 客戶端界面設(shè)計 重慶科技學(xué)院《 Windows 程序設(shè)計 》課程設(shè)計報告 10 客戶端的功能實現(xiàn) (1).初始化 WinSock環(huán)境 與服務(wù)器端基本相同, 具體代碼如下: // socket 函數(shù)建立套接字 WSAStartup(MAKEWORD(2, 0), amp。然后輸入服務(wù)器端的 IP 地址并發(fā)起連接請求,如果連接超時 則返回輸入 IP 狀態(tài),若成功則可發(fā)送和接收消息,在此過程中如果服務(wù)器將本客戶端斷開,則返回輸入 IP 態(tài)。若是客戶端選則了斷開連 接,則當服務(wù)器端收到相應(yīng)的斷開信息后就將鏈表中對應(yīng)的 IP 刪除。 } 連接請求與斷開連接 當客戶端開啟并發(fā)出連接信息時,在服務(wù)器端判斷,如果是連接請求信息“ connect”則如上一節(jié)所述將其 IP 加入鏈表同時加入 ListBox顯示出來,并向客戶端發(fā)送連接成功的確認信息。 sendto(m_sockLocal, buf, 1024, 0, (SOCKADDR*)amp。 iter++) //從鏈表的開始結(jié)點到結(jié)束結(jié)點 { IP = (*iter)。 // 遍歷鏈表以 廣播接收到的客戶消息 for (iter = ()。 //對鏈表的增加、刪除 (IP)。 下面分別是建立鏈表、遍歷鏈表、增加刪除鏈表的具體實現(xiàn)代碼: //定義一個用來保存 IP 的鏈表 listCString IPlist。 重慶科技學(xué)院《 Windows 程序設(shè)計 》課程設(shè)計報告 8 鏈表的維護以及消息的廣播 在 該程序 的服務(wù)器端 設(shè)計了一個 鏈 表 ,用來保存所有在線的客戶端的 IP 地址。 sendto(m_sockLocal, buf, 1024, 0, (SOCKADDR*)amp。m_addrfrom, amp。m_addr_in, sizeof(m_addr_in))。 //協(xié)議族 = htons(SERVE
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1