一般都是通過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 一定耐心給客戶解釋 和 是不一樣的。比如我們公司的門戶 總共也就乙個靜態頁面,只需很短的時間就能搞定。谷歌 那也是乙個 卻有成千上萬的工程師日以繼夜地工作。即便是同樣長相...