在JAVA中,發(fā)送和接收多播信息的方法:?

我們是2013年至今的成都網(wǎng)站建設(shè)公司,提供網(wǎng)站建設(shè),電商網(wǎng)站設(shè)計(jì)開發(fā),成都外貿(mào)網(wǎng)站制作,響應(yīng)式網(wǎng)頁設(shè)計(jì),小程序設(shè)計(jì)、等服務(wù)。為客戶創(chuàng)造有價(jià)值的品牌營(yíng)銷體驗(yàn),讓互聯(lián)網(wǎng)提升企業(yè)的競(jìng)爭(zhēng)力!
發(fā)送多播信息需經(jīng)歷步驟?
確定發(fā)送的具體信息內(nèi)容?
String msg = "Hello";?
選用專門為多播指定的D類IP地址(224.0.0.1到239.255.255.255),創(chuàng)建一個(gè)多播組?
InetAddress group = InetAddress.getByName("228.5.6.7");?
使用指定的端口(一般選1024以上的端口號(hào))建立多播套接字?
MulticastSocket s = new MulticastSocket(6789);?
加入多播組?
s.joinGroup(group);?
創(chuàng)建一個(gè)數(shù)據(jù)報(bào)封裝多播信息?
DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(),?
group, 6789);?
發(fā)送?
s.send(hi);?
接收多播信息的步驟?
開辟接收緩沖區(qū)?
byte[] buf = new byte[1000];?
創(chuàng)建接收數(shù)據(jù)報(bào)?
DatagramPacket recv = new DatagramPacket(buf, buf.length);?
接收?
s.receive(recv);?
注意:以上發(fā)送和接收程序在同一個(gè)文件中實(shí)現(xiàn),若在不同文件中實(shí)現(xiàn)則應(yīng)分別定義多播套接字并加入多播組。?
3.與已知IP和端口的端點(diǎn)通信?
在互聯(lián)網(wǎng)上主要采用TCP和UDP來實(shí)現(xiàn)兩點(diǎn)之間的通信。采用TCP可可靠傳送信息,但花費(fèi)時(shí)間較多;采用UDP可快速傳遞信息,但不能保證可靠傳遞。
JAVA實(shí)現(xiàn)TCP通信的方法 :
利用Socket(InetAddress addr, int port)和 Socket(String host, int port),創(chuàng)建客戶端套接字,利用ServerSocket(int port)創(chuàng)建服務(wù)器端套接字,port端口就是服務(wù)器監(jiān)聽連接請(qǐng)求的端口,通過調(diào)用accept()返回一個(gè)最近創(chuàng)建的Socket對(duì)象,該Socket對(duì)象綁定了客戶程序的IP地址或端口號(hào)。通過調(diào)用Socket的 getInputStream()方法獲得輸入流讀傳送輪伍來的信息,也可能通過調(diào)用Socket的 getOutputStream()方法獲得輸出流來發(fā)送消息。?
JAVA實(shí)現(xiàn)UDP通信的方法 :
使用DatagramPacket(byte [] buffer, int length, InetAddress addr, int port) 確定數(shù)據(jù)包數(shù)組、數(shù)組的長(zhǎng)度、臘扒或數(shù)據(jù)包的地址和端口信息。使用DatagramSocket()創(chuàng)建客戶端套接字,而服務(wù)器端則采用DatagramSocket(int port),調(diào)用send(DatagramPacket dgp)和 receive(DatagramPacket dgp)來發(fā)送和接收數(shù)據(jù)包。本文設(shè)計(jì)的程序采用UDP。
P2P(Peer-to-Peer 端到端)模型是與C/S(客戶/服務(wù)器)模型相對(duì)應(yīng)。基于C/S的用戶間通信需要由服務(wù)器中轉(zhuǎn),在C/S中的服務(wù)器故障將導(dǎo)致整個(gè)網(wǎng)絡(luò)通信的癱瘓此卜。。而基于P2P的用戶間通信則是直接通信,去掉了服務(wù)器這一層,帶來的顯著優(yōu)點(diǎn)是通信時(shí)沒有單一的失敗點(diǎn),一個(gè)用戶的故障不會(huì)影響整個(gè)P2P網(wǎng)絡(luò)。本文提供了一種用JAVA實(shí)現(xiàn)P2P網(wǎng)絡(luò)通信的方法。 ?
假設(shè)有兩臺(tái)分別處于各自的私有網(wǎng)絡(luò)中的主機(jī):A和B;N1和N2是兩個(gè)NAT設(shè)備;S是一個(gè)使用了一個(gè)眾所周知的、從全球任何地方都能訪問得搏拍含到的IP地址的公共服基笑務(wù)器
步驟一:A和B分別和S建立UDP連賀纖接;NAT設(shè)備N1和N2創(chuàng)建UDP轉(zhuǎn)換狀態(tài)并分配臨時(shí)的外部端口號(hào)
步驟二:S將這些端口號(hào)傳回A和B
步驟三:A和B通過轉(zhuǎn)換好的端口直接聯(lián)系到對(duì)方的NAT設(shè)備;NAT設(shè)備則利用先前創(chuàng)建的轉(zhuǎn)換狀態(tài)將分組發(fā)往A和B
源碼已發(fā)送請(qǐng)查收
常見的p2p網(wǎng)貸源碼基桐螞本上有四種吧,免費(fèi)或低價(jià)購(gòu)買的p2p網(wǎng)貸源碼、自行開發(fā)的p2p網(wǎng)貸源碼、購(gòu)買之后又自己二次開發(fā)的p2p源碼,還有一種就是定制的
個(gè)人認(rèn)為購(gòu)買的和定制的比較好點(diǎn),迪蒙網(wǎng)貸系統(tǒng)有它們的對(duì)比大輪埋滾螞,你可以去了解下
記得采納呀~~~^_^
對(duì)比過,覺得迪蒙網(wǎng)貸系鉛信臘統(tǒng)還不錯(cuò),提供JAVA源碼。
主要開發(fā)工具:
Eclipse:坦轎開源、功能強(qiáng)大、使用廣泛、插件多,易用槐滑。
IntelliJ:號(hào)稱最智能的Java開發(fā)工具,不開源,要花錢買License,不過有破解版。
然后迪蒙網(wǎng)貸系統(tǒng)java版的優(yōu)勢(shì)也多:
1、Java通過JDBC來訪問數(shù)據(jù)庫,接口比較統(tǒng)一。
2、java跨平臺(tái)性比較好;
3、開發(fā)成本方面相對(duì)低;
4、代碼安全等等。
本文名稱:p2p+java+源代碼的簡(jiǎn)單介紹
文章來源:http://www.chinadenli.net/article40/ddpsoeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站策劃、App設(shè)計(jì)、用戶體驗(yàn)、網(wǎng)站營(yíng)銷、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)