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

正文內(nèi)容

基于udp協(xié)議網(wǎng)上聊天程序課程設(shè)計(編輯修改稿)

2025-07-09 09:16 本頁面
 

【文章內(nèi)容簡介】 是使用 標(biāo)準(zhǔn) Unix 文件描述符 (file descriptor) 和其它程序通訊的方式。使用 send()和 recv()讓你更好的控制數(shù)據(jù)傳輸。在 Java 網(wǎng)絡(luò)編程中, socket 相當(dāng)于應(yīng)用程序的港口碼頭;在計算機(jī)網(wǎng)絡(luò)中,套接字由 ip 地址和端口號組成,為進(jìn)程之間通信提供地址。兩個主機(jī)進(jìn)行通信實際上就是兩個主機(jī)中的應(yīng)用進(jìn)程互相通信,應(yīng)用進(jìn)程之間的通信又稱為端到端的通信。為應(yīng)用進(jìn)程之間的通信提供運輸服務(wù)的是運輸層的運輸協(xié)議,運輸層需要有兩種不同的運輸協(xié)議,即面向連接的 TCP 和無連接的 UDP。 在 Java 中,用于實現(xiàn)基于 UDP 的聊天程序,使用兩個重要的類( DatagramSocket 類和 DatagramPacket 類)。 DatagramSocket 類表示用來發(fā)送和接收數(shù)據(jù)報包的套接字。數(shù)據(jù)報套接字是包投遞服務(wù)的發(fā)送或接收點。每個在數(shù)據(jù)報套接字上發(fā)送或接收的包都是單獨編址和路由的。從一臺機(jī)器發(fā)送到另一臺機(jī)器的多個包可能選擇不同的路由,也可能按不同的順序到達(dá)。 在DatagramSocket 上總是啟用 UDP 廣播發(fā)送。為了接收廣播包,應(yīng)該將 DatagramSocket 綁定到通配符地址。在某些實現(xiàn)中,將 DatagramSocket 綁定到一個更加具體的地址時廣播包也可以被 接收。 DatagramPacket 類表示數(shù)據(jù)報包。 數(shù)據(jù)報包用來實現(xiàn)無連接包投遞服務(wù)。每條報文僅根據(jù)該包中包含的信息從一臺機(jī)器路由到另一臺機(jī)器。從一臺機(jī)器發(fā)送到另一臺機(jī)器的多個包可能選擇不同的路由,也可能按不同的順序到達(dá)。不對包投遞做出保證。服務(wù)程序工作在服務(wù)器的某個端口上,一旦啟動服務(wù),它將在這個端口上監(jiān)聽,等待客戶程序發(fā)來請求,當(dāng)有客戶連接到該端口, accept()方法就返回一個 Socket 對象,可以用該對象獲得一個輸入輸出流。服務(wù)器的套接字用服務(wù)器套接字類( ServerSocket)來建立。具體實現(xiàn)如 下: (1)建立一個服務(wù)者,端口為 6666。 .9. (2)服務(wù)者永遠(yuǎn)等待,一旦客戶送來正確的請求,連接至該端口, accept()方法就返回一個 Socket 對象。 (3)用返回的 Socket 對象創(chuàng)建數(shù)據(jù)輸入流類的實例 6666。用返回的 Socket對象創(chuàng)建數(shù)據(jù)輸出流的實例 8888。 以上實例 in 和 out 是服務(wù)者用于從客戶接受輸入信息和向客戶程序發(fā)送信息所用。此外,還需要用方法 receive()和 printIn()讀取或輸出一行數(shù)據(jù)。 (4) 在客戶端建立 Socket 對象,并進(jìn)行異常處理,主機(jī)名和端口號與連接的服務(wù)器名和提供該 服務(wù)的服務(wù)程序的監(jiān)聽端口必須一致。建立連接后用 Socket類提供的 Datagramsocket()和 Datagrampacket()方法取得輸入輸出流。在服務(wù)器端,獲得的輸入流是客戶端的輸出流,而 Socket 獲得的輸出流是發(fā)向客戶端的輸入流,在客戶端也是這樣。獲得 socket 的輸入輸出流之后,為了便于讀寫操作,需要在這兩個流對象基礎(chǔ)上建立易于操作的數(shù)據(jù)流 Datagramsocket, Datagrampacket。然后對輸入輸出流進(jìn)行讀寫操作。在通信結(jié)束時關(guān)閉 socket,以斷開連接,釋放資源。先關(guān)閉對應(yīng)的 輸入輸出流,再關(guān)閉 socket 本身。 .10. 流程圖 服務(wù)器端 客戶端 Socket 建立流式套接字,返回套接字 waitforpackets 檢測并接受對方發(fā)來的消息 waitforpackets 檢測并接受對方發(fā)來的消息 Socket 建立流式套接字,返回套接字 Bind 將套接字號宇本地地址相連 waitforpackets 接收來自客戶的數(shù)據(jù) 處理請求 Button1_actionPerformed 發(fā)送信息給對方 Button1_actionPerformed 發(fā)送信息給對方 Close 關(guān)閉 數(shù)據(jù)請 求 數(shù)據(jù)應(yīng)答 .11. 系統(tǒng)結(jié)構(gòu)圖 程序調(diào)試及界面效果圖 調(diào)試前的準(zhǔn)備 安裝 并在計算機(jī)的環(huán)境變量中配置好 java 環(huán)境。使用的實驗環(huán)境是Windows XP, Eclipse ,。使用 3 太主機(jī)進(jìn)行通信,一臺作為服務(wù)器,另外兩臺作為客戶端。 程序調(diào)試過程 啟動 eclipse 首先在一臺主機(jī)上運行服務(wù)器端程序,再在另外兩臺機(jī)器上運行客戶端程序。然后進(jìn)入到用戶的圖形用戶界面,輸入客戶端的 IP,進(jìn)行連接,如果連接成功,則客戶端就可以通過與服務(wù)器端進(jìn)行通信,然后服務(wù)器轉(zhuǎn)發(fā)通信,實現(xiàn)了兩個客戶端之間的聊天功能。 程 序運行結(jié)果 Server服務(wù)器( ) ChatApp_01 客戶端() ChatApp_02 客戶端() ChatApp_03 客戶端() .12. 服務(wù)器( ) .13. ChatApp_01 客戶端( ) .14. ChatApp_02 客戶端( ) .15. ChatApp_03 客戶端( ) 源代碼 package ChatFrame_01。 import .*。 import .*。 import .*。 import .*。 import .*。 import .*。 import .*。 import 。 .16. public class ChatFrame extends JFrame { JPanel contentPane。 JLabel label1 = new JLabel()。
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1