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

正文內(nèi)容

基于udp通信的聊天程序java程序設(shè)計課程設(shè)計報告(已修改)

2024-11-26 03:25 本頁面
 

【正文】 1 JAVA程序設(shè)計 課程設(shè)計報告 課 題 : 基于 UDP 通信的聊天程序 姓 名: 湯 欽 磊 學(xué) 號: 202017010215 同組姓名: 李才偉 專業(yè)班級: 計科 09101 指導(dǎo)教師: 劉國清老師 設(shè)計時間: 評閱意見: 評定成績: 指導(dǎo)老師簽名: 年 月 日 2 基于 UDP 通信的聊天程序 1 協(xié)議介紹和使用說明 協(xié)議內(nèi)容 本課程設(shè)計主要是基于 UDP 的并用 Java 實現(xiàn)的簡單的聊天程序。 UDP 用戶數(shù)據(jù)報是在運輸層的端到端抽象的邏輯信道中傳送的。 UDP 在傳送數(shù)據(jù)之前不需要先建立連接。對方的運輸層在收到 UDP 報文后,不需要給出任何確認。雖然 UDP 不提供可靠交付,但在某些情況下 UDP 是一種最有效的工作方式。雖然 UDP 用戶數(shù)據(jù)報只能提供不可靠的交付,但 UDP 在某些方面有其特殊的優(yōu)點,它有即時通信的功能。比如說,使用聊天 程序聊天的時候,省去的了跟對方通信的時候的鏈接的麻煩,直接進行通信。 UDP 只在 IP 的數(shù)據(jù)報服務(wù)之上增加了很少一點的功能,即端口的功能和差錯檢測的功能。 UDP 使用盡最大努力交付,即不保證可靠交付,同時也不使用擁塞控制。 UDP 是面向報文的。 UDP 沒有擁塞控制,很適合多媒體通信的要求。 UDP 支持一對一、一對多、多對一和多對多的交互通信。發(fā)送方 UDP 對應(yīng)用程序交下來的報文,在添加首部后就向下交付 IP 層。 UDP 對應(yīng)用層交下來的報文,既不合并,也不拆分,而是保留這些報文的邊界。應(yīng)用層交給 UDP 多長的報文, UDP 就照樣發(fā)送,即一次發(fā)送一個報文。接收方 UDP 對 IP 層交上來的 UDP 用戶數(shù)據(jù)報,在去除首部后就原封不動地交付上層的應(yīng)用進程,一次交付一個完整的報文。 3 關(guān)鍵技術(shù) 服務(wù)器端 Socket 的實現(xiàn) Socket 又稱作套接字,它是使用 標準 Unix 文件描述符 (file descriptor) 和其它程序通訊的方式。使用 send()和 recv()讓你更好的控制數(shù)據(jù)傳輸。在 Java 網(wǎng)絡(luò)編程中, socket 相當于應(yīng)用程序的港 口碼頭;在計算機網(wǎng)絡(luò)中,套接字由 ip 地址和端口號組成,為進程之間通信提供地址。兩個主機進行通信實際上就是兩個主機中的應(yīng)用進程互相通信,應(yīng)用進程之間的通信又稱為端到端的通信。為應(yīng)用進程之間的通信提供運輸服務(wù)的是運輸層的運輸協(xié)議,運輸層需要有兩種不同的運輸協(xié)議,即面向連接的 TCP 和無連接的 UDP。 在 Java 中,用于實現(xiàn)基于 UDP 的聊天程序,使用兩個重要的類( DatagramSocket 類和 DatagramPacket 類)。 DatagramSocket 類表示用來發(fā)送和接收數(shù)據(jù)報包的套接字。數(shù)據(jù)報套 接字是包投遞服務(wù)的發(fā)送或接收點。每個在數(shù)據(jù)報套接字上發(fā)送或接收的包都是單獨編址和路由的。從一臺機器發(fā)送到另一臺機器的多個包可能選擇不同的路由,也可能按不同的順序到達。 在DatagramSocket 上總是啟用 UDP 廣播發(fā)送。為了接收廣播包,應(yīng)該將 DatagramSocket 綁定到通配符地址。在某些實現(xiàn)中,將 DatagramSocket 綁定到一個更加具體的地址時廣播包也可以被接收。 atagramPacket 類表示數(shù)據(jù)報包。 數(shù)據(jù)報包用來實現(xiàn)無連接包投遞服務(wù)。每條報文僅根據(jù)該包中包含的信息從一臺機器路由到另一 臺機器。從一臺機器發(fā)送到另一臺機器的多個包可能選擇不同的路由,也可能按不同的順序到達。不對包投遞做出保證。 服務(wù)程序工作在服務(wù)器的某個端口上,一旦啟動服務(wù),它將在這個端口上監(jiān)聽,等待客戶程序發(fā)來請求,當有客戶連接到該端口, accept()方法就返回一個 Socket 對象,可以用該對象獲得一個輸入輸出流。服務(wù)器的套接字用服務(wù)器套接字類 ( ServerSocket) 來建立。具體實現(xiàn)如下: (1)建立一個服務(wù)者,端口為 5000。 (2)服務(wù)者永遠等待,一旦客戶送來正確的請求,連接至該端口, accept() 方法就返回一個 Socket 對象。 (3)用返回的 Socket 對象創(chuàng)建數(shù)據(jù)輸入流類的實例 in。用返回的 Socket 對象創(chuàng)建數(shù)據(jù)輸出流的實例 out。 以上實例 in 和 out 是服務(wù)者用于從客戶接受輸入信息和向客戶程序發(fā)送信息所用。此外,還需要用方法 readline() 和 println() 讀取或輸出一行數(shù)據(jù)。 (4)()關(guān)閉 Socket。 通信的建立 在客戶端建立 Socket 對象,并進行異常處理,主機名和端口號與連接的服務(wù)器名和提供該服務(wù)的服務(wù)程序的監(jiān)聽端口必須一致。建立連接后用 Socket 類提供的 getInputStream() 和 getOutputStream() 方
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1