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

正文內(nèi)容

基于udp協(xié)議網(wǎng)上聊天程序 課程設(shè)計-預(yù)覽頁

2025-07-05 09:16 上一頁面

下一頁面
 

【正文】 ( 2)目標(biāo)端口號( 16 位): UDP 數(shù)據(jù)包的接收方使用的端口號。此協(xié)議默認(rèn)是 IP 下層協(xié)議。 UDP 是面向報文的。一個典型的數(shù)據(jù)包就是一個二進(jìn)制數(shù)據(jù)的傳輸單位。 UDP協(xié)議適用 端口 分別運行在同一臺設(shè)備上的多個 應(yīng)用程序 。包括 網(wǎng)絡(luò)視頻會議 系統(tǒng)在內(nèi)的眾多的客戶 /服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用 UDP 協(xié)議。 .6. 2 課程設(shè)計實現(xiàn)過程 協(xié)議原理 UDP 協(xié)議的全稱是用戶數(shù)據(jù)報協(xié)議,在 網(wǎng)絡(luò) 中它與 TCP 協(xié)議一樣用于處理數(shù)據(jù)包,是一種無連接的協(xié)議。并且避免了服 務(wù)器忙或與服務(wù)器無法連接時,浪費過多時間用于和服務(wù)器建立連接!因此,這個軟件是極具適應(yīng)性和實用性的即時通訊軟件! 本次課程設(shè)計的目的是學(xué)習(xí)基于 UDP 協(xié)議實現(xiàn)網(wǎng)絡(luò)聊天程序,已達(dá)到學(xué)會面向無連接方式的程序設(shè)計方法,并理解網(wǎng)絡(luò)編程中面向無連接的概念。程序代碼書寫規(guī)范,有充足的注釋。 2. 客戶端具有圖形化用戶界面。 1. 支持多人聊天。 三、設(shè)計要求 1. 按功能要求開發(fā)系統(tǒng),能正確運行。在連接并通信時,尤其是近程的即時通訊,徹底的脫離了遠(yuǎn)程的服務(wù)器,避免了和遠(yuǎn)程服務(wù)器連接時過多的浪費網(wǎng)絡(luò)資源。 。 UDP 用來支持那些需要在 計算機(jī) 之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。 UDP 協(xié)議基本上是 IP 協(xié)議 與上層協(xié)議的接口。 UDP 協(xié)議的 主要作用是將 網(wǎng)絡(luò)數(shù)據(jù) 流量壓縮成數(shù)據(jù)包的形式。 UDP 使用的是盡最大努力交付,即不保證可靠交付,因此主機(jī)不需要維持復(fù)雜的 連接狀態(tài)表。 UDP 是定義用來在互連網(wǎng)絡(luò)環(huán)境中提供數(shù)據(jù)報交換的計算機(jī)通信的協(xié)議。 .7. ( 1)源端口號( 16 位): UDP 數(shù)據(jù)包的發(fā)送方使用的端口號。 ( 3)數(shù)據(jù)報長度( 16 位)。 ( 4)校驗值( 16 位)。 客戶機(jī)一方, UDP 應(yīng)用程序功能如下: ( 1) 打開通信信道(申請一套接字),并連接到服務(wù)器在主機(jī)的保留端口,該端口對應(yīng)服務(wù)器的 UDP 進(jìn)程。 ( 2) 等待客戶請求到達(dá)指定端口。 關(guān)鍵技術(shù) Socket 又稱作套接字,它是使用 標(biāo)準(zhǔn) Unix 文件描述符 (file descriptor) 和其它程序通訊的方式。為應(yīng)用進(jìn)程之間的通信提供運輸服務(wù)的是運輸層的運輸協(xié)議,運輸層需要有兩種不同的運輸協(xié)議,即面向連接的 TCP 和無連接的 UDP。每個在數(shù)據(jù)報套接字上發(fā)送或接收的包都是單獨編址和路由的。在某些實現(xiàn)中,將 DatagramSocket 綁定到一個更加具體的地址時廣播包也可以被 接收。從一臺機(jī)器發(fā)送到另一臺機(jī)器的多個包可能選擇不同的路由,也可能按不同的順序到達(dá)。具體實現(xiàn)如 下: (1)建立一個服務(wù)者,端口為 6666。 以上實例 in 和 out 是服務(wù)者用于從客戶接受輸入信息和向客戶程序發(fā)送信息所用。在服務(wù)器端,獲得的輸入流是客戶端的輸出流,而 Socket 獲得的輸出流是發(fā)向客戶端的輸入流,在客戶端也是這樣。先關(guān)閉對應(yīng)的 輸入輸出流,再關(guān)閉 socket 本身。 程序調(diào)試過程 啟動 eclipse 首先在一臺主機(jī)上運行服務(wù)器端程序,再在另外兩臺機(jī)器上運行客戶端程序。 import .*。 import .*。 JLabel label1 = new JLabel()。// 輸出端口標(biāo)簽 JTextField textField1 = new JTextField()。// 獲得輸出端口 JButton button1 = new JButton(發(fā)送 )。// 聲明發(fā)送和接收數(shù)據(jù)包 DatagramSocket sendsocket, receivesocket。 } } private void toInit() throws Exception { contentPane = (JPanel) ()。 .17. ()。 (new Rectangle(12, 19, 109, 23))。 (new Rectangle(180, 58, 55, 22))。 (new () { public void actionPerformed(ActionEvent e) { button1_actionPerformed(e)。 if (() != 0amp。 byte data[] = (UTF8)。 } .18. ()。 (new Rectangle(123, 20, 120, 19))。 ()。 (label1, null)。 (textField4, null)。 bind()。 receivepacket = new DatagramPacket(array, )。 (received)。 } catch (Exception e) { } } void button1_actionPerformed(ActionEvent e) {// 發(fā)送消息到對方 String str = ()。!.equals(str1)) { try { (\nto + () + : + 3000 + say: + ())。 (sendpacket)。 import .*。 ChatApp() { ChatFrame frame = new ChatFrame()。 Dimension frameSize = ()。 (true)。 import 。 .21. import .*。 DatagramSocket ssocket。 } public void listen() throws Exception { byte[] array = new byte[100]。 String received = new String(data,0,UTF8)。 byte[] dt=ss[1].getBytes(UTF8)。 while (true) { ()。當(dāng)編譯沒有錯誤的時候,進(jìn)行執(zhí)行時,往往開始幾次都不能達(dá)到自己的理想效果,這個時候的修改工作往往更加復(fù)雜,尤其是這個程序,整個程序大體上由幾個類來控制,但是其實里面的類與類相互之間的聯(lián)系很多,類與類相互之間相互交織在一起,在設(shè)計的時候我就考慮了把實現(xiàn)一些功能類似的按鈕的事件響應(yīng)放到一起,這樣在編譯出錯時就能很容易的修改錯誤 ,看起來也清晰明了,所以功能模塊化對程序的閱讀、調(diào)試、修改起了很重要的作用。 其實編寫程序不僅僅讓我們學(xué)到和更進(jìn)一步的理解了語言算法的結(jié)構(gòu)和思想,還進(jìn)一步培養(yǎng)了我們縝密的思維, 考慮問題更
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1