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

正文內(nèi)容

網(wǎng)絡(luò)電話軟件設(shè)計(jì)論文-資料下載頁(yè)

2025-09-29 10:37本頁(yè)面

【導(dǎo)讀】網(wǎng)絡(luò)電話,也稱為IP電話,近幾年它的發(fā)展非常之迅速。本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)計(jì)算。其中詳細(xì)講解了軟件設(shè)計(jì)中的重點(diǎn)和難點(diǎn),分析了軟件中語(yǔ)音的采集和播放,在局域網(wǎng)上用此軟件來(lái)做通話實(shí)驗(yàn),音質(zhì)和時(shí)延都達(dá)到了電話的效果,說(shuō)明此軟件達(dá)。到了IP電話的基本要求。

  

【正文】 Listen 成員函數(shù),表示處于等待連接狀態(tài),等待客戶機(jī)方發(fā)出申請(qǐng)連接( Connect)的消息,當(dāng)接收到此消息后, CServerSocket 類的 OnAccept 消息響應(yīng)函數(shù)即會(huì)響應(yīng),此時(shí)再構(gòu)造一個(gè) CMsgSocket 類的對(duì)象 (用來(lái)傳輸數(shù)據(jù) ),然后調(diào)用 CServerSocket類的 Accept 成員函數(shù)表示接受連接申請(qǐng),若此函數(shù)返回真值,則表示連接成功??蛻魴C(jī)方則只需構(gòu)造一個(gè) CMsgSocket 類的對(duì)象,調(diào)用此對(duì)象的 Connect 成員函數(shù),申請(qǐng)連接即可。 服務(wù)器方 客戶機(jī)方 New CserverSocket,生成服務(wù)器對(duì)象 new CmsgSocket,生成連接對(duì)象 Create,創(chuàng)建 Create,創(chuàng)建 Listen, 處于監(jiān)聽(tīng)狀態(tài) Connect,申請(qǐng)連接 New CmsgSocket,生成連接對(duì)象 Accept,接 受連接 Send,發(fā)送數(shù)據(jù) Send,發(fā)送數(shù)據(jù) Receive,接收數(shù)據(jù) Receive,接收數(shù)據(jù) 按上述順序建立連接后,服務(wù)器方和客戶機(jī)方都調(diào)用 CMsgSocket 對(duì)象的 Send 函數(shù)來(lái)發(fā)送數(shù)據(jù),當(dāng)接收到數(shù)據(jù)時(shí), CMsgSocket 類的 OnReceive 消息響應(yīng)函數(shù)即會(huì)響應(yīng),再調(diào)用Receive 函數(shù)來(lái)接收數(shù)據(jù),這樣服務(wù)器方和客戶機(jī)方就可以進(jìn)行數(shù)據(jù)通信了。 在程序中要注意網(wǎng)絡(luò)消息的響應(yīng),如接收到數(shù)據(jù),有客戶申請(qǐng)連接,已連接上,對(duì)方已斷開(kāi)等等,與一般的消息響應(yīng)函數(shù)不同,它已經(jīng)集成在 CSocket 類的成 員函數(shù)中,而不用消息響應(yīng)宏。如在 CServerSocket 類中重載 CSocket 類的成員函數(shù) OnAccept,即可以處理申請(qǐng)連接的消息,在 CMsgSocket 類中重載 CSocket 類的成員函數(shù) OnReceive,即可以處理接收到數(shù)據(jù)的消息。重載 CSocket 類的成員函數(shù) OnClose 函數(shù),即可以處理對(duì)方網(wǎng)絡(luò)已斷開(kāi)的消息。另外用 CSocket 類的成員函數(shù) GetPeerName 可以得到對(duì)方的 IP 地址,在程序中可以保存下來(lái),供以后連接使用,用戶不必再重新輸入。 21 22 第六章 軟件具體實(shí)現(xiàn) 軟件的頁(yè)面設(shè)計(jì) 服務(wù)器端的界面設(shè)計(jì) 圖一 23 客戶端的界面設(shè)計(jì) 圖二 軟件的運(yùn)行方式 軟件服務(wù)器端的界面如上圖一所示,運(yùn)行本系統(tǒng)時(shí)必須首先運(yùn)行服務(wù)器程序。 軟件客戶端的界面如上圖一所示,運(yùn)行客戶端程序后,可以與已知運(yùn)行的服務(wù)器進(jìn)行連 接,連接方法: ( 1) 首先輸入用戶名,該用戶名為客戶端在服務(wù)器上注冊(cè)的名稱(可以任意輸入)。 ( 2) 選擇用戶的通信協(xié)議(推薦選擇 TCP/IP協(xié)議)。 ( 3) 輸入服務(wù)器的 IP 地址或服務(wù)器名稱。 ( 4) 點(diǎn)擊連接按鈕 。 如果服務(wù)器通過(guò)客戶端的請(qǐng)求則表示客戶端與服務(wù)器已經(jīng)建立了連接。這是客戶端的聯(lián) 系人里會(huì)出現(xiàn)與該服務(wù)器建立連接的所有客戶端的名稱。 客戶端可以通過(guò)選擇聯(lián)系人來(lái)請(qǐng)求與選擇的聯(lián)系人建立通話連接,當(dāng)然,被選擇 24 的客戶端也可以拒絕通話請(qǐng)求。如果被請(qǐng)求方同意了通話請(qǐng)求則表明了雙方建立了連接。并可以進(jìn)行通信了。任何一方在發(fā)送消息欄里輸入的信息都會(huì)直接傳到通信對(duì)象的接受消息欄中。當(dāng)然客戶端也可以選中“語(yǔ)音通信”,將自己的語(yǔ)音發(fā)送給對(duì)方,實(shí)現(xiàn)語(yǔ)音通信。 通話完畢,雙方都可以選擇聯(lián)系人中的“ No one to talk”停 止與對(duì)方交談,類似與掛斷電話。 用戶依據(jù)網(wǎng)絡(luò)狀況的好壞,可以采用壓縮和不壓縮的方式來(lái)傳輸語(yǔ)音(本程序還未實(shí)現(xiàn))。在局域網(wǎng)內(nèi)用不壓縮的方式就可以達(dá)到很好的效果。 實(shí)踐證明,本軟件在實(shí)際運(yùn)行中穩(wěn)定可靠,在局域網(wǎng)上音質(zhì)和延遲都基本上達(dá)到了電話的效果。 軟件的具體實(shí)現(xiàn) 處理客戶端請(qǐng)求建立與服務(wù)器的連接 服務(wù)器收到客戶端的連接請(qǐng)求,根據(jù)客戶端傳過(guò)來(lái)的協(xié)議和 IP 地址建立客戶端和服務(wù)器間的連接,添加該客戶信息進(jìn)客戶列表,更新所有客戶端列表和服務(wù)器端列表,將服務(wù)器的 socket 設(shè)置成繼續(xù)偵聽(tīng)狀態(tài)。具體 實(shí)現(xiàn)如下:根據(jù)此結(jié)構(gòu)體 typedef struct _VTMSG { BYTE m_ucIdentity。 // Identifies the message BYTE m_ucCmd。 // message mand BYTE m_ucMsgType。 // The message type UINT m_lLength。 // size of the message block BYTE m_pData[VT_MAX]。 // message data } VTMSG, *LPVTMSG。 中的 m_ucCmd 來(lái)確定用戶傳過(guò)來(lái)的是什么信息。如果接受客戶端的數(shù)據(jù)不是客戶端斷開(kāi)信息,即 m_ucCmd!=VTCMD_SESSIONCLOSE,則分析客戶端傳過(guò)來(lái)數(shù)據(jù)的類型并處理該數(shù)據(jù) .當(dāng) m_ucCmd= VTCMD_REGNAME,則說(shuō)明客戶端想要與服務(wù)器建立連接,服務(wù)器收到該信息,則根據(jù)客戶端傳過(guò)來(lái)的協(xié)議和 IP 地址建立與該客戶端的連接。并且把該客戶信息添加到客戶列表,并將其狀態(tài)設(shè)置成 AVAILABLE。此時(shí)該 客戶端的信息便在客戶下拉列表中顯示出來(lái),這樣該客戶便可以接受其它想與其聊天的任何客戶端的請(qǐng)求,但只能接受一個(gè)客戶 25 的請(qǐng)求。 處理客戶端向另一客戶端發(fā)送連接請(qǐng)求 服務(wù)器收到該客戶端的請(qǐng)求后,服務(wù)器遍歷所有客戶列表,處理客戶端的響應(yīng)請(qǐng)求。具體實(shí)現(xiàn)方法如下:當(dāng)此結(jié)構(gòu)體 typedef struct _VTMSG { BYTE m_ucIdentity。 // Identifies the message BYTE m_ucCmd。 // message mand BYTE m_ucMsgType。 // The message type UINT m_lLength。 // size of the message block BYTE m_pData[VT_MAX]。 // message data } VTMSG, *LPVTMSG。 中的 m_ucCmd= VTCMD_REQSESSION 時(shí),則表明客戶端請(qǐng)求與另一客戶端建立連接。當(dāng)服務(wù)器收到此信息后,將遍歷所有的客戶端,如果該客戶端存在并且空閑,則給被 請(qǐng)求的客戶端發(fā)送信息,請(qǐng)求連接。此時(shí)將兩個(gè)客戶端的狀態(tài)置為 SESSION SETUP。 處理客戶端的響應(yīng)請(qǐng)求 當(dāng)客戶端同意與另一客戶端建立連接時(shí),服務(wù)器將收到的信息轉(zhuǎn)給另一客戶端,如果同意建立連接,此時(shí)服務(wù)器將更新用戶列表,把兩個(gè)客戶端的狀態(tài)設(shè)置為 IN SESSION .此時(shí)兩個(gè)客戶端便可進(jìn)行聊天了。但不能再接受其它客戶端的聊天請(qǐng)求。 處理客戶端的通信 服務(wù)器將收到的客戶端的信息原封不動(dòng)的轉(zhuǎn)發(fā)給與其進(jìn)行聊天的另一客戶端。 處理客戶端斷開(kāi)通話連接的請(qǐng)求 根據(jù)此結(jié)構(gòu)體 26 typedef struct _VTMSG { BYTE m_ucIdentity。 // Identifies the message BYTE m_ucCmd。 // message mand BYTE m_ucMsgType。 // The message type UINT m_lLength。 // size of the message block BYTE m_pData[VT_MAX]。 // message data } VTMSG, *LPVTMSG。 如果 m_ucCmd=VTCMD_SESSIONCLOSE 則表明客戶端斷開(kāi)已經(jīng)建立的通話。 當(dāng)某一客戶端想要斷開(kāi)與另一客戶端的連接時(shí),只需在聯(lián)系人一欄中選擇 NO ONE TO TALK。此時(shí)將斷開(kāi)與另一客戶端的聯(lián)接。服務(wù)器將收到的信息轉(zhuǎn)給另一客戶端,通知其與另一客戶端已經(jīng)斷開(kāi)連接。此時(shí)服務(wù)器更新用戶列表。將請(qǐng)求斷開(kāi)的客戶端的狀態(tài)置為AVAILABLE。 處理客戶端斷開(kāi)與服務(wù)器的連接 當(dāng)客戶端想與服務(wù)器斷開(kāi)連接時(shí),只需點(diǎn)擊關(guān)閉按鈕,此 時(shí)就斷開(kāi)了與服務(wù)器的連接。服務(wù)器更新用戶列表。如果客戶端斷開(kāi)連接,則更新所有的服務(wù)器端 /客戶端列表(刪除所有客戶端的該客戶信息) 27 致謝 在本次畢業(yè)設(shè)計(jì) 和論文撰寫(xiě)的 過(guò)程中, 得到了 指導(dǎo) 教 師 陳立巖 老師 悉心指導(dǎo)和大力支持 。 陳立巖 老師身上認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平使我 獲益匪淺。無(wú)論在理論上還是在實(shí)踐中,都給與我很大的幫助,使我得到不少的提高 , 這對(duì)于我以后的工作和學(xué)習(xí)都 是 一種巨大的幫助 。在此表示由衷的感謝! 另外, 許多同學(xué)也給 予了 我很大的幫助,幫助解決了不少的難點(diǎn), 提出了許多寶貴意見(jiàn),為 本系統(tǒng)的完成貢獻(xiàn)了他們的力量, 使得畢業(yè)設(shè)計(jì) 和論文 能及時(shí)開(kāi)發(fā)完成,這里 對(duì)他們 表示 深深的 感謝。 28 結(jié)論 本軟件從總體上已經(jīng)達(dá)到了 IP 電話的基本要求,但是由于作者的時(shí)間和條件有限,軟件也存在一些不足和需要進(jìn)一步完善的地方。最大的不足是每秒 的語(yǔ)音數(shù)據(jù)在我們國(guó)家當(dāng)前的 Inter 上還是顯得過(guò)高,本軟件中語(yǔ)音壓縮率還有待繼續(xù)提高。 其次在本軟件中從通用性的目的出發(fā),采用 TCP/IP 協(xié)議進(jìn)行網(wǎng)絡(luò)傳輸。實(shí)際上 IP 電話的語(yǔ)音傳輸和視頻傳輸以及語(yǔ)音和視頻的壓縮方式等都有相應(yīng)的國(guó)際標(biāo)準(zhǔn),如果作為一個(gè)嚴(yán)格的商業(yè)軟件 ,則必須采用這些標(biāo)準(zhǔn)。 另外在軟件的整體功能上還可以進(jìn)一步加強(qiáng)。例如語(yǔ)音通話中可以加入錄音功能,實(shí)現(xiàn)起來(lái)也并不困難,將內(nèi)存中的語(yǔ)音數(shù)據(jù)寫(xiě)入文件即可,同理也可以實(shí)現(xiàn)語(yǔ)音信箱的功能。其它一些重要的功能,如多人之間的文件傳輸,多方通話等等,都可以加入軟件中。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1