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

正文內(nèi)容

基于udp的局域網(wǎng)聊天系統(tǒng)(文件)

2024-12-04 03:25 上一頁面

下一頁面
 

【正文】 static bool saveGroupInfo(DBSerialize amp。 導(dǎo)出歷史消息 static bool exportMsg(const char *pathName, uint32 uin)。 加載客戶端設(shè)置 static bool loadConfig(const char *fileName, DBSerialize amp。 加載快速回復(fù)消息 static void loadQuickReply(StrList amp。 加載自動(dòng)回復(fù)消息 static void loadAutoReply(StrList amp。 private: 青島理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 32 獲得數(shù)據(jù)庫的完整路徑 static DB *getDBFullPath(const char *pathName, bool dup = false)。}。 void ReleaseDC( HDC )。 virtual ~CBitmapEx()。 釋放獲得的 DC void ReleaseDC()。 BOOL BitBlt( HDC hDestDC, int xDest, int yDest, int nDestWidth, int nDestHeight, int xSrc, int ySrc, DWORD dwROP = SRCCOPY )。 伸縮繪制位圖到目標(biāo) DC上 BOOL StretchBlt( HDC hDestDC, int xDest, int yDest, int nDestWidth, int nDestHeight, DWORD dwROP = SRCCOPY )。 BOOL StretchBlt( HDC hDestDC, const RECTamp。 BOOL TransparentBlt( HDC hDestDC, const RECTamp。 rectSrc, UINT 青島理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 35 crTransparent = CLR_INVALID )。 HDC m_hDC。 static CDCCache s_cache。所以,對(duì)于本程序,還要通過在以后的使用中,發(fā)現(xiàn)問題,加以改進(jìn)。這次網(wǎng)絡(luò)實(shí)驗(yàn) 可以說是在理解網(wǎng)絡(luò)的基礎(chǔ)上對(duì) Windows Socket 編程的一次學(xué)習(xí)過程,雖然做的不好,但也學(xué)到了很多知識(shí),對(duì)自己以后進(jìn)行網(wǎng)絡(luò)開發(fā)有很大的幫助。而且,由于時(shí)間關(guān)系,客戶端還有些功能沒有完全。 (4) 語音聊天功能還在試驗(yàn)之中,由于時(shí)間關(guān)系,還沒有整合到客戶端中,還應(yīng)該繼續(xù)添加語音會(huì)議,語音群聊。經(jīng)過近半年的努力加上老師的精心輔導(dǎo),使我克服了很多困難,最終順利完成了畢業(yè)設(shè)計(jì)。 4 年大學(xué)生活過去了能完成畢業(yè)設(shè)計(jì),還要感謝培養(yǎng)和栽培我的母校 青島理工大學(xué),感謝學(xué)校各位老師對(duì)我的幫助與指導(dǎo),有你們才有我今天的成績(jī)。從畢業(yè)設(shè)計(jì)選題、審題開始,就給了我很大的幫助,細(xì)心指出我在畢業(yè)設(shè)計(jì)中的不足,耐心糾正項(xiàng)目中的錯(cuò)誤。 青島理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 37 致 謝 從大四下學(xué)期開始,我開始了為期半年的畢業(yè)設(shè)計(jì)。 (2) 多線程下的對(duì)臨界數(shù)據(jù)訪問的問題。而客戶端的設(shè)計(jì)有很多都需要完善。本學(xué)期課和其他實(shí)驗(yàn)也很多,因此做的時(shí)間不多,做的結(jié)果不太好,與自己原來的設(shè)想有些差距。 青島理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 36 第 5 章 結(jié)論與展望 通過自己在自己機(jī)器上通過多個(gè)進(jìn)程 的測(cè)試和通過兩臺(tái)機(jī)器聯(lián)機(jī)測(cè)試,本程序完全實(shí)現(xiàn)了概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)的各種功能,滿足了需求分析提出的各種要求。 int m_nHeight。 private: HBITMAP m_hBitmap。 BOOL TransparentBlt( HDC hDestDC, const RECTamp。 rectSrc, DWORD dwROP = SRCCOPY )。 rectDest, DWORD dwROP = SRCCOPY )。 rectDest, const POINTamp。 BOOL BitBlt( HDC hDestDC, const POINTamp。 銷毀,釋放資源 void Destroy()。 }。 ~CDCCache()。 刪除索引 static bool delIndex(const char *fileName, uint32 index)。 保存自動(dòng)回復(fù)消息 static void saveAutoReply(StrList amp。 保存快速回復(fù)消息 static void saveQuickReply(StrList amp。 獲取本地歷史登錄用戶 ID列表 static bool getMsgUinList(UinList amp。 保存客戶端設(shè)置 static bool saveConfig(const char *fileName, DBSerialize amp。 加載客戶端組設(shè)置 static bool loadGroupInfo(DBSerialize amp。 加載客戶端設(shè)置 static bool loadOptions(IcqOption amp。 加載用戶信息 static bool loadUser(IcqUser amp。contactList)。c)。msgList)。其具體的實(shí)現(xiàn)如下: class IcqDB { public: 設(shè)置數(shù)據(jù)庫工作路徑 static void setDir(const char *dir)。然后等待服務(wù)器的青島理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 28 響應(yīng)。根據(jù)用戶的操作,可以向好友發(fā)送消息,查看好友信息,查看在線的人,查找用戶,發(fā)送廣播消息,傳 送文件等功能。登陸時(shí),可選擇是否隱身,進(jìn)入系統(tǒng)后,好友列表中,在線的人,將以高亮度顯示,并處在列表的上頭。 return false。 break。 onDelFriend(in)。 break。 case UDP_GROUP_SEND_MSG: 用戶群發(fā) sendAckPacket(cmd, seq)。 break。 case UDP_UPDATE_USER: 用戶更改自身信息 onUpdateUser(in)。 onChangeStatus(in)。 break。 break。 return true。 CServerLog::InsertItem(str)。 } if (cmd != UDP_ACK amp。 獲得數(shù)據(jù)包版本標(biāo)識(shí) ip = ()。 cmd != UDP_NEW_UIN) { if (sid != () || uin != ()) { CServerLog::InsertItem(packet does not belong to this session.)。in) { uint16 cmd = ()。 MySQL數(shù)據(jù)庫 static char sqlStmt[]。 全局發(fā)送隊(duì) 列 static IcqList keepAliveList。 超時(shí)時(shí)間 IcqListItem listItem。 登錄密碼 uint16 sendSeq。 IP地址 uint16 port。 TCP數(shù)據(jù)包版本標(biāo)識(shí) uint32 sid。 廣播消息 void onBroadcastMsg(UdpInPacket amp。 青島理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 23 添加好友 void onAddFriend(UdpInPacket amp。 void onSearchRandom(UdpInPacket amp。 void onSendMessage(UdpInPacket amp。 更改用戶資料 void onModifyUser(UdpInPacket amp。 更改登錄狀態(tài) void onChangeStatus(UdpInPacket amp。 登陸 void onLogin(UdpInPacket amp。 創(chuàng)建新用戶 void onNewUIN(UdpInPacket amp。 青島理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 22 發(fā)送消息 void sendMessages(const char *sql, int n)。 銷毀連接 void dead()。 發(fā)送數(shù)據(jù)包 void sendPacket(UdpOutPacket *)。 private: 直接發(fā)送 UPD數(shù)據(jù)包 void sendDirect(UdpOutPacket *p) 。 檢查發(fā)送數(shù)據(jù)的隊(duì)列 static time_t checkSendQueue()。)。 圖 服務(wù)器端用戶界面 服務(wù)器端的構(gòu)成 類名稱 說明 CIcqServerApp 應(yīng) 用程序類 CIcqServerDlg 主界面類 CAboutDlg 關(guān)于對(duì)話框類 CServerLog 服務(wù)器日志類,用于顯示,保存日志 UdpSession 服務(wù)器 UDP 通訊類,為服務(wù)器端核心部分 青島理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 20 UdpInPacket UPD 接收封包類 UdpOutPacket UPD 發(fā)送封包類 UDP_HEADER UPD 包頭結(jié)構(gòu)體 SessionHash HASH 類 IcqPacket 數(shù)據(jù)包類 IcqList 雙向鏈表類 IcqListItem 鏈表節(jié)點(diǎn)類 BROADCAST_MSG 廣播 消息結(jié)構(gòu)體 服務(wù)器端的主要功能實(shí)現(xiàn) UdpSession 類為服務(wù)器端的核心部分,負(fù)責(zé)管理數(shù)據(jù)和客戶端通信 [8],其聲明為: class UdpSession { friend class SessionHash。這樣,可以實(shí)時(shí)接受每個(gè)用戶的請(qǐng)求,不會(huì)因?yàn)樘幚硪粋€(gè)用戶的請(qǐng)求,而忽略了其它用戶。服務(wù) 器的數(shù)據(jù)庫采用的是 MySQL 數(shù)據(jù)庫,服務(wù)器訪問數(shù)據(jù)庫,用的是封裝在UdpSession 中的相應(yīng)方法,因?yàn)?,?duì)數(shù)據(jù)庫的操作簡(jiǎn)單,服務(wù)器端為后臺(tái)運(yùn)行,著重的是功能和穩(wěn)定性,不需繁瑣的界面,所以界面的設(shè)計(jì)上只提供了簡(jiǎn)單的日志顯示列表和服務(wù)器運(yùn)行控制工具欄。因?yàn)槭褂?UDP 協(xié)議進(jìn)行通訊,所以要自己控制其可靠性。 序號(hào) 字段名 數(shù)據(jù)類型 長(zhǎng)度 允許為空 是否主鍵 說明 1 uin Int 10 否 是 用戶 id 2 passwd Char 16 否 否 用戶密碼 3 pic TinyInt 3 否 否 頭像索引 4 nick Char 16 是 否 用戶昵稱 5 age TinyInt 3 是 否 年齡 6 gender TinyInt 3 是 否 性別 7 country Char 16 是 否 國(guó)家 8 province Char 16 是 否 省份 9 city Char 20 是 否 城市 青島理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 16 10 Char 30 是 否 Email 表 ( basic_tbl) ( 2) 用戶擴(kuò)展信息表( ext_tbl):存儲(chǔ)用戶的擴(kuò)展信息。 ( 2)每個(gè)客戶端都要安裝應(yīng)用程序,部署復(fù)雜 。它支持高并發(fā)度,成千上萬個(gè)用戶可同時(shí)操縱同一個(gè)數(shù)據(jù)庫。其主要特點(diǎn)如下: (1) 嵌入式( Embedded):它直接鏈接到應(yīng)用程序中,與應(yīng)用程序運(yùn)行于同樣的地址空間中,因此,無論是在網(wǎng)絡(luò)上不同計(jì)算機(jī)之間還是在同一臺(tái)計(jì)算機(jī)的不同進(jìn)程之間,數(shù)據(jù)庫操作并不要求進(jìn)程間通訊。 [7] ( 2) 客戶端 數(shù)據(jù)庫 系統(tǒng) 的選擇 Berkeley DB 是由美國(guó) Sleepycat Software 公司開發(fā)的一套開放源碼的嵌入式數(shù)據(jù)庫的程序庫( database library),它為應(yīng)用程序提供可伸縮的、高性能的、有事務(wù)保護(hù)功能的數(shù)據(jù)管理服務(wù)。 ( 1) 服務(wù)器 數(shù)據(jù)庫 系統(tǒng) 的選擇 MySQL 是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng) [14],開 發(fā)者為瑞典 MySQLAB 公司, MySQL被廣泛地應(yīng)用在 Inter 上的中小型網(wǎng)站中。但如果你不圍繞 Developer Studio 來進(jìn)行學(xué)習(xí),就 不能有效地使用Visual C++( Developer Studio 聽起來很像 Visual Studio , 但它們之間沒有關(guān)系)。這方面的一個(gè)典型例子就是提供 Inter 從域名到 IP 地址映射服務(wù)的 DNS 服務(wù)器。此時(shí),服務(wù)程序被 驚醒 并且為客戶提供服務(wù),對(duì)客戶的請(qǐng)求作出適當(dāng)?shù)姆磻?yīng)。 客戶及 /服務(wù)器模型將網(wǎng)絡(luò)應(yīng)用程序分為客戶和服務(wù)器兩部分。 如前所述, TCP/IP 協(xié)議的應(yīng)用一般采用客戶 /服務(wù)器模式,因此在實(shí)際應(yīng)用中,必須有客戶和服務(wù)器兩個(gè)進(jìn)程,并且首先啟動(dòng)服務(wù)器,其系統(tǒng)調(diào)用時(shí)序圖 如下。 closesocket()的調(diào)用格式如下: BOOL PASCAL F
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1