网络编程(学习整理)---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 }

 

转载于:https://www.cnblogs.com/newwind/p/5661582.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值