Java 基于UDP協(xié)議實現(xiàn)消息發(fā)送
發(fā)短信:不用連接,但需要知道對方的地址,客戶端、服務端沒有明確的界限,可以說沒有客戶端、服務端一說。
發(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 = "你好啊,服務器!"; //發(fā)送地址 InetAddress localhost = InetAddress.getByName("localhost"); //主機 //發(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:目標地址 * @param port port:目標端口 */ 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(); } }
以上就是Java 基于UDP協(xié)議實現(xiàn)消息發(fā)送的詳細內(nèi)容,更多關(guān)于Java 消息發(fā)送的資料請關(guān)注腳本之家其它相關(guān)文章!
- RxJava的消息發(fā)送和線程切換實現(xiàn)原理
- 使用Java和WebSocket實現(xiàn)網(wǎng)頁聊天室實例代碼
- 基于Java Socket實現(xiàn)一個簡易在線聊天功能(一)
- java聊天室的實現(xiàn)代碼
- Java基于socket實現(xiàn)簡易聊天室實例
- java實現(xiàn)自動回復聊天機器人
- java socket實現(xiàn)聊天室 java實現(xiàn)多人聊天功能
- java中UDP簡單聊天程序?qū)嵗a
- java Socket實現(xiàn)網(wǎng)頁版在線聊天
- java實現(xiàn)一個簡單TCPSocket聊天室功能分享
- Java網(wǎng)絡(luò)編程UDP實現(xiàn)消息發(fā)送及聊天
相關(guān)文章
關(guān)于Java?float和double精度范圍大小
這篇文章主要介紹了關(guān)于Java?float和double精度范圍大小,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12地址到經(jīng)緯度坐標轉(zhuǎn)化的JAVA代碼
這篇文章介紹了地址到經(jīng)緯度坐標轉(zhuǎn)化的JAVA代碼,有需要的朋友可以參考一下2013-09-09JVM堆內(nèi)存溢出后,其他線程是否可繼續(xù)工作的問題解析
這篇文章主要介紹了JVM 堆內(nèi)存溢出后,其他線程是否可繼續(xù)工作?,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-08-08如何解決Could not transfer artifact org.spri
在Maven更新過程中遇到“Could not transfer artifact org.springframework.boot”錯誤通常是由于網(wǎng)絡(luò)問題,解決方法是在Maven的設(shè)置中忽略HTTPS,添加特定語句后,可以正常下載依賴,但下載速度可能較慢,這是一種常見的解決方案,希望對遇到相同問題的人有所幫助2024-09-09關(guān)于Java大整數(shù)運算之BigInteger類
這篇文章主要介紹了關(guān)于Java大整數(shù)運算之BigInteger類,BigInteger提供高精度整型數(shù)據(jù)類型及相關(guān)操作,所有操作中,都以二進制補碼形式表示,需要的朋友可以參考下2023-05-05淺談SpringCloud?Alibaba和SpringCloud的區(qū)別
這篇文章主要介紹了淺談SpringCloud?Alibaba和SpringCloud的區(qū)別,Spring?Cloud?Netflix框架也屬于Spring?Cloud,但是Netflix并不是由spring來進行開發(fā)的,需要的朋友可以參考下2023-05-05