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

正文內(nèi)容

udp局域網(wǎng)qq聊天程序設(shè)計(jì)說明書-資料下載頁

2025-05-13 22:38本頁面
  

【正文】 break。 } } private void ReceivedFileMsg(int CurrPos)//對(duì)方發(fā)送文件數(shù)據(jù)過來 RecTime=。//接收數(shù)據(jù)的時(shí)間間隔 int pRec=0。//上次接收的位置 private void ReceivedFileBlock(sendFileInfo msg)//當(dāng)對(duì)方發(fā)送文件數(shù)據(jù)塊過來 private void ReadySendFile()//準(zhǔn)備發(fā)送文件給對(duì)方 private void sendFileData()//發(fā)送文件 private string GetSpeedStr(int SendByteCount) private void userCancelSendFile()//當(dāng)對(duì)方“取消了文件傳輸” private void sockUDP1_DataArrival(byte[] Data, Ip, int Port) private void sendData(sendFileInfo fInfo) public void SendData( Ip,int Port,byte[] MsgContent) private void timer1_Tick(object sender, e)//保持UDP端口在外網(wǎng)上的映射 private void filesSend_fileSend(object sender, FileSendEventArgs e) { =false。 }(8) 文件傳輸中的發(fā)送和讀寫文件都是基于異步的,實(shí)現(xiàn)了對(duì)大文件的分塊發(fā)送。與前面的文本信息的發(fā)送比較的類似,因?yàn)閭鬏數(shù)氖嵌M(jìn)制流,所以傳輸前要先將文件進(jìn)行序列化成二進(jìn)制流的形式,再進(jìn)行傳輸。只要知道了對(duì)方的IP地址,本地需要開啟一個(gè)端口進(jìn)行監(jiān)聽,文件接收方也需要開啟一個(gè)端口進(jìn)行監(jiān)聽,看是否有文件流到達(dá)本地。如果有文件流到達(dá)本地后,就進(jìn)行讀取接收。與傳輸?shù)倪^程剛好是相反的,是要將二進(jìn)制流的信息反序列化成文件對(duì)象。接收的文件默認(rèn)放在接受文件端得根目錄下。當(dāng)給對(duì)方發(fā)送文件的時(shí)候,同時(shí)給對(duì)方發(fā)送一個(gè)消息,提示對(duì)方自己已經(jīng)給對(duì)方發(fā)送了一個(gè)文件。在文件發(fā)送的時(shí)候,也獨(dú)立開辟了一個(gè)線程來處理。文件接收的時(shí)候也開辟的一個(gè)線程來處理接收。這樣,可以提高系統(tǒng)的效率,加快文件傳輸?shù)乃俣取? 服務(wù)器端模塊的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 服務(wù)器端控制臺(tái)窗體概述該窗體是客戶端與遠(yuǎn)程客戶端相互通信的一個(gè)中轉(zhuǎn)站,并且在該窗體上顯示已注冊(cè)的所有用戶信息,包括注冊(cè)的ID、IP地址、端口號(hào)、姓名、狀態(tài),并顯示用戶的在線狀態(tài),4是表示在線,12是表示不在線。 服務(wù)器端控制臺(tái)窗體技術(shù)分析在本模塊中使用了BinaryFormatter對(duì)象,該對(duì)象是以二進(jìn)制格式將對(duì)象或整個(gè)連接對(duì)象序列化或反序列化。 服務(wù)器端控制臺(tái)窗體實(shí)現(xiàn)過程(1)新建一個(gè)Windows窗體,主要用于實(shí)現(xiàn)系統(tǒng)的登陸功能,該窗體用到的主要控件有ListView和UDPSocket。(2)在控制臺(tái)窗體的菜單欄中選擇“控制臺(tái)/開始服務(wù)”命令,打開UDP協(xié)議的監(jiān)聽。然后再選中“控制臺(tái)/關(guān)閉服務(wù)”命令,即可關(guān)閉UDP協(xié)議的監(jiān)聽。(3)在UDPSocket1的控件的DataArrival事件中,對(duì)客戶端發(fā)送的消息進(jìn)行監(jiān)聽,并根據(jù)發(fā)送的消息對(duì)數(shù)據(jù)庫進(jìn)行相應(yīng)的操作。(5)InsertUser()方法的主要功能是將用戶注冊(cè)的相關(guān)信息添加到數(shù)據(jù)庫的tb_CurreneyUser數(shù)據(jù)表中,并更新用戶列表。(6)UpdateUserList()方法的主要功能是將剛剛注冊(cè)成功的用戶信息,發(fā)送給當(dāng)前所有在線的用戶,并告知其他用戶,當(dāng)然已有人注冊(cè)。(7)UserLogin()方法的主要功能是當(dāng)前用戶上線時(shí),更改tbCurreneyUser數(shù)據(jù)表中相關(guān)用戶的標(biāo)識(shí),并更新用戶的在線狀態(tài)。6 系統(tǒng)特色及關(guān)鍵技術(shù)(1)當(dāng)窗體上邊框拖動(dòng)到屏幕頂端時(shí),窗體會(huì)自動(dòng)隱藏。實(shí)現(xiàn)這一過程,使用的是timer1控件對(duì)鼠標(biāo)進(jìn)行實(shí)時(shí)監(jiān)控,用API函數(shù)PtInRect()判斷當(dāng)前鼠標(biāo)是否在窗體上,如果在,判斷窗體的Top屬性值,并進(jìn)行相應(yīng)的操作。代碼如下: private void timer1_Tick(object sender, EventArgs e) { pp= new Point(,)。//獲取鼠標(biāo)在屏幕的坐標(biāo)點(diǎn)Rectangle Rects = new Rectangle(, , + , + )。//存儲(chǔ)當(dāng)前窗體在屏幕的所在區(qū)域if (( 0) amp。amp。 (ref Rects, pp))//當(dāng)鼠標(biāo)在當(dāng)前窗體內(nèi),并且窗體的Top屬性小于0 = 0。//設(shè)置窗體的Top屬性為0 else //當(dāng)窗體的上邊框與屏幕的頂端的距離小于5時(shí) if ( 5 amp。amp。 5 amp。amp。 !((ref Rects, pp))) = 5 。//將窗體隱藏到屏幕的頂端 }(2)為了使程序窗口的界面看起來更加的美觀、大方。對(duì)所有的窗體都進(jìn)行了皮膚的加載。皮膚的加載技術(shù)相對(duì)的來說比較的簡(jiǎn)單。只要在程序中引入相應(yīng)的皮膚加載庫,然后將相關(guān)的文件放到當(dāng)前程序的目錄下,即可實(shí)現(xiàn)動(dòng)態(tài)加載皮膚了。(3)該程序中還使用的系統(tǒng)托盤圖標(biāo)的功能。該功能的實(shí)現(xiàn)主要是使用了notifyIcon1控件實(shí)現(xiàn)。托盤圖標(biāo)還具有右鍵菜單的功能。菜單上具有在線、離線、和退出的功能。(4)此外,還對(duì)窗體圖標(biāo)已經(jīng)可執(zhí)行程序的圖標(biāo)都進(jìn)行插入“”圖片,使程序看起來更加的美觀、大方。(5)本程序還對(duì)客戶端和服務(wù)器端程序分別進(jìn)行了打包。使用戶在使用的時(shí)候能夠比較方便的安裝。打包使用的是VS2005中的“安裝和部署”功能來進(jìn)行打包的。打包的時(shí)候,只要將程序使用的到的相關(guān)的動(dòng)態(tài)鏈接庫和可執(zhí)行文件進(jìn)行打包即可。到了其他機(jī)器上,只要單擊運(yùn)行“安裝程序”即可自動(dòng)的快速的在本地完成聊天程序的安裝。然后點(diǎn)擊快捷方式,即可方便的進(jìn)行登錄了。(6)語音、視頻和文件傳輸是本程序最大的特色,也是在本系統(tǒng)開發(fā)中最難開發(fā)的、技術(shù)含量最多的模塊。(1)用戶首先啟動(dòng)服務(wù)器端。單擊“控制臺(tái)”/“開始服務(wù)”命令,啟動(dòng)服務(wù)器端的UDP協(xié)議。要關(guān)閉服務(wù)器的監(jiān)聽,單擊“控制臺(tái)”/“關(guān)閉服務(wù)”命令即可; 要退出服務(wù)器端后臺(tái),點(diǎn)擊菜單欄上的“退出”菜單項(xiàng)即可。(2)在局域網(wǎng)的其它計(jì)算機(jī)中,啟動(dòng)客戶端程序,進(jìn)入主窗體。(5)在窗體中,雙擊在線人員的名稱,即可彈出聊天窗口。(6)在文本框中輸入聊天的內(nèi)容,點(diǎn)擊發(fā)送,即可進(jìn)行文本信息的聊天。(7)分別點(diǎn)擊聊天窗口上““語音”、“文件傳輸”按鈕,即可分別進(jìn)行語音和文件傳輸?shù)裙δ堋?
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1