網絡編程(學習整理)---3--(Udp)FeiQ實現廣播消息群發


1、廣播群發消息:

    這里使用的任然是UDP協議,使用方法還是比較簡單的!

    我就記錄一下需要注意的一些地方(筆記):

    (1)這里是在局域網內,借用FeiQ聊天軟件,編寫一段程序,實現對局域網內的每一個登錄FeiQ的用戶廣播式的群發消息!

    (2)向一款應用程序發送信息,不是簡單的String類型,或者byte[]類型的數據就可以的,一般通信軟件都有內置好的接受數據包的格式,作為過濾非法數據!

      也是一種安全性的措施,想想也是應該的!這里FeiQ的接受數據格式為:“版本號:發送時間:發送人:發送者IP:發送數據的類型標識符(默認32:文本字符串:發送的內容)”

    (3)我們向指定的在線用戶發送數據包的時候,需要指定的是對方在特定網段內的IP和端口號,但是群發的話,由於接受的對象是所有在線用戶,那么使用的是FeiQ軟件提供的特定的IP和端口號!這些事內設好的,拿來主義,很簡單是不是啊!

 

2、現在貼上測試的例子:

效果圖:

以下是代碼:

 1 package cn.udp;
 2 
 3 import java.net.DatagramPacket;
 4 import java.net.DatagramSocket;
 5 import java.net.InetAddress;
 6 
 7 /**
 8  * 模擬:
 9  * 使用udp協議給FeiQ發送信息
10  * @author 小風微靈
11  *
12  */
13 public class FQSend {
14 
15     
16     public static void main(String[] args) throws Exception {
17         
18         System.out.println("發送端!");
19         //建立UDP服務插座
20         DatagramSocket send=new DatagramSocket();
21         
22         //創建發送包
23         String content=getFQData("哈哈哈,我是神!收到你哦一聲啊!");
24         String content1=getFQData("ip:192.168.9.255" +
25                                   "port:2425" +
26                                   "這樣就可以群發了,但是不能while循環啊!會出事!");
27         DatagramPacket packet=new DatagramPacket(content.getBytes(), 
28                                                  content.getBytes().length,
29                                                  InetAddress.getByName("192.168.1.255"),2425);
30         
31         //消息 群發:
32         //InetAddress.getByName("192.168.9.255"),2425
33         
34         //發送數據包
35         send.send(packet);    //發送不是阻塞型的!
36         System.out.println("數據已發送.....");
37 
38     }
39     
40     private static String getFQData(String content){
41         
42         StringBuilder sb = new StringBuilder();
43           sb.append("1.0:")                                    //版本號
44             .append(System.currentTimeMillis()+":")            //時間
45             .append("天使-彥:")                                //發送者
46             .append("192.168.9.251:")                        //ip
47             .append("32:")                                    //標識符(信息格式標志)
48             .append(content);                                //發送的信息    
49         return sb.toString();
50     }
51     
52 
53 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM