上手UDP,你只需要知道這些

2021-09-25 14:04:20 字數 1248 閱讀 7351

一般都是通過socket類實現的。socket就是埠,實現一次資訊傳遞至少需要兩個埠。udp中資料的傳遞都是以資料報(packet)的形式進行的。

形象地來說,可以把socket物件想象成快遞公司,packet就是快遞員。快遞公司安排快遞員去送貨,作為發快遞的人(傳送端),我們不需要知道快遞員從哪個物流中心(埠)出發送貨,我們只需要在包裹(packet)中打包好貨物,寫好收貨位址即可。而作為收快遞的人,我們必須知道快遞員把包裹放到了**(是放在了自提櫃?還是門衛室?)即要知道埠號,還必須要知道快遞的大小(位元組數)以便知道用多大的箱子(位元組陣列)裝下包裹。

具體使用的類有:datagramsocket、datagrampacket

其中socket物件在傳送端初始化時可以不給出埠號,但在接收端必須指定

packet物件在傳送端初始化時,應給出位元組陣列名,陣列長度,傳送位址,和接收端的埠號。

byte buf, int length, inetaddress address, int port

packet物件在接收端初始化時,只需給出位元組陣列名和接收長度即可。

講了這麼多,下面動手實踐一下,實現乙個簡單的文字聊天室

(閱讀下面部分需要一點圖形介面的知識)

傳送端

public

class

clientui

/* * 初始化介面

*/public

void

iniui()

}public

class

clistener

implements

actionlistener

public

void

actionperformed

(actionevent e)

}public

void

send

(string s)

catch

(exception e)

}}

接收端

public

class

uiextends

jframe

public

void

initui()

}public

class

receiver

public

void

recv()

}catch

(exception e)

}}

關於棧,你需要知道這些

分別用四個字描述棧和佇列 棧 後進先出 佇列 先進先出 棧 一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧中的資料元素遵守後進先出lifo last in first out 的原則。它的三個核心操作 入棧 棧的插入操作叫做進棧...

React初學者,你需要知道這些

react 不是 mvc 框架,也不同於其他任何框架。它只是乙個用來渲染你檢視的庫。如果你來自 mvc 的世界,你需要意識到 react 只是 v 且是部分等於。你需要在其他地方找到你的 m 和 c 不然你終將會在令人生厭的 react 前止步。這點是顯而易見的,但也值得討論。每乙個優秀的開發者都知...

接軟體開發專案,你需要知道這些!

作為乙個程式設計師,跟客戶交流是最困難的事情了,所以在上路之前,複習一下這兩年遇到的奇怪的客戶言論,以便以後更好地跟客戶交流。1 一定耐心給客戶解釋 和 是不一樣的。比如我們公司的門戶 總共也就乙個靜態頁面,只需很短的時間就能搞定。谷歌 那也是乙個 卻有成千上萬的工程師日以繼夜地工作。即便是同樣長相...