您好,登錄后才能下訂單哦!
如何在Java項目中使用UDP協(xié)議發(fā)送消息?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
發(fā)短信:不用連接,但需要知道對方的地址,客戶端、服務(wù)端沒有明確的界限,可以說沒有客戶端、服務(wù)端一說。
發(fā)送端
package lesson03; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /** * 發(fā)送端 */ public class UdpClientDemo1 { public static void main(String[] args) throws Exception { //1、建立一個 Socket DatagramSocket socket = new DatagramSocket(); /** * 2、建個包 */ //需要發(fā)送的消息 String msg = "你好啊,服務(wù)器!"; //發(fā)送地址 InetAddress localhost = InetAddress.getByName("localhost"); //主機(jī) //發(fā)送端口 int port = 9090; /** * 五個參數(shù): * @param buf msg.getBytes():需要發(fā)送的數(shù)據(jù)包 * @param offset 0:數(shù)據(jù)偏移量 * @param length msg.getBytes().length:數(shù)據(jù)長度 * @param address localhost:目標(biāo)地址 * @param port port:目標(biāo)端口 */ DatagramPacket packet = new DatagramPacket(msg.getBytes(), 0, msg.getBytes().length, localhost, port); //3、發(fā)送包 socket.send(packet); //4、關(guān)閉流 socket.close(); } }
接收端
package lesson03; import java.net.DatagramPacket; import java.net.DatagramSocket; /** * 接收端 */ public class UdpServerDemo1 { public static void main(String[] args) throws Exception { //開放端口 DatagramSocket socket = new DatagramSocket(9090); //接收數(shù)據(jù)包 byte[] buffer = new byte[1024]; DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length); //接收 socket.receive(packet); //阻塞接收 //輸出數(shù)據(jù)包地址 System.out.println(packet.getAddress().getHostAddress()); /** * 輸出數(shù)據(jù)包數(shù)據(jù) * packet:Data 類型 * 通過構(gòu)造器轉(zhuǎn)成 String 類型:new String(); */ System.out.println(new String(packet.getData(), 0, packet.getLength())); //關(guān)閉連接 socket.close(); } }
關(guān)于如何在Java項目中使用UDP協(xié)議發(fā)送消息問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。