网络编程(学习整理)---3--(Udp)FeiQ实现广播消息群发
1、广播群发消息:
这里使用的任然是UDP协议,使用方法还是比较简单的!
我就记录一下需要注意的一些地方(笔记):
(1)这里是在局域网内,借用FeiQ聊天软件,编写一段程序,实现对局域网内的每一个登录FeiQ的用户广播式的群发消息!
(2)向一款应用程序发送信息,不是简单的String类型,或者byte[]类型的数据就可以的,一般通信软件都有内置好的接受数据包的格式,作为过滤非法数据!
也是一种安全性的措施,想想也是应该的!这里FeiQ的接受数据格式为:“版本号:发送时间:发送人:发送者IP:发送数据的类型标识符(默认32:文本字符串:发送的内容)”
(3)我们向指定的在线用户发送数据包的时候,需要指定的是对方在特定网段内的IP和端口号,但是群发的话,由于接受的对象是所有在线用户,那么使用的是FeiQ软件提供的特定的IP和端口号!这些事内设好的,拿来主义,很简单是不是啊!
2、现在贴上测试的例子:
效果图:


以下是代码:
package cn.udp; import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress; /**
* 模拟:
* 使用udp协议给FeiQ发送信息
* @author 小风微灵
*
*/
public class FQSend { public static void main(String[] args) throws Exception { System.out.println("发送端!");
//建立UDP服务插座
DatagramSocket send=new DatagramSocket(); //创建发送包
String content=getFQData("哈哈哈,我是神!收到你哦一声啊!");
String content1=getFQData("ip:192.168.9.255" +
"port:2425" +
"这样就可以群发了,但是不能while循环啊!会出事!");
DatagramPacket packet=new DatagramPacket(content.getBytes(),
content.getBytes().length,
InetAddress.getByName("192.168.1.255"),); //消息 群发:
//InetAddress.getByName("192.168.9.255"),2425 //发送数据包
send.send(packet); //发送不是阻塞型的!
System.out.println("数据已发送....."); } private static String getFQData(String content){ StringBuilder sb = new StringBuilder();
sb.append("1.0:") //版本号
.append(System.currentTimeMillis()+":") //时间
.append("天使-彦:") //发送者
.append("192.168.9.251:") //ip
.append("32:") //标识符(信息格式标志)
.append(content); //发送的信息
return sb.toString();
} }
网络编程(学习整理)---3--(Udp)FeiQ实现广播消息群发的更多相关文章
- Linux 系统编程 学习:07-基于socket的网络编程2:基于 UDP 的通信
Linux 系统编程 学习:07-基于socket的网络编程2:基于 UDP 的通信 背景 上一讲我们介绍了网络编程的一些概念.socket的网络编程的有关概念 这一讲我们来看UDP 通信. 知识 U ...
- 转 网络编程学习笔记一:Socket编程
题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人:但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有 ...
- python语法基础-网络编程-TCP协议和UDP协议
############### 网络编程 ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...
- 网游中的网络编程系列1:UDP vs. TCP
原文:UDP vs. TCP,作者是Glenn Fiedler,专注于游戏网络编程相关工作多年. 目录 网游中的网络编程系列1:UDP vs. TCP 网游中的网络编程2:发送和接收数据包 网游中的网 ...
- [转]Windows网络编程学习-面向连接的编程方式
直接附上原文链接:windows 网络编程学习-面向连接的编程方式
- JAVA TCP网络编程学习笔记
一.JAVA网络编程概述 网络应用程序,就是在已实现网络互联的不同计算机上运行的应用程序,这些程序之间可以相互交换数据.JAVA是优秀的网络编程语言,Java网络编程的类库位于java.net包中.J ...
- Linux网络编程学习路线
转载自:https://blog.csdn.net/lianghe_work/article 一.网络应用层编程 1.Linux网络编程01——网络协议入门 2.Linux网络编程02——无连接和 ...
- C,C++网络编程学习简明指南
C,C++网络编程学习简明指南 1. 扎实的C,C++基础知识 参考资料<C程序设计>,<C++ primer>. 2. TCP/IP协议 经典书是:W.Richard Ste ...
- 网络编程——TCP协议、UDP协议、socket套接字、粘包问题以及解决方法
网络编程--TCP协议.UDP协议.socket套接字.粘包问题以及解决方法 TCP协议(流式协议) 当应用程序想通过TCP协议实现远程通信时,彼此之间必须先建立双向通信通道,基于该双向通道实现数 ...
随机推荐
- JavaScript---网络编程(11)--DHTML技术演示(4)-单选框/下拉菜单/添加文件
本节讲述单选框/下拉菜单/添加文件,综合css,html和JavaScript. 单选框: 实现的功能是:(类似平时的性格测试) 先隐藏一部分页面,然后通过点击单选框来显示. 再通过选项的选择-(每个 ...
- HDOJ/HDU 1022 Train Problem I(模拟栈)
Problem Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot o ...
- Qualcomm 8X camera daemon进程浅析
Camera 先看一下抽象层的主要流程: 首先启动一个守护进程 int qcamsvr_start(void)( qcamsvr.c) { 1. server_fd = open(server_dev ...
- 深入理解 Spring 事务原理
本文由码农网 – 吴极心原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 一.事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供 ...
- java 删除字符串中的特定字符
/** * Delete any character in a given String. * @param inString the original String * @param charsTo ...
- Pgsql数据库jsonb操作函数集合
CREATE OR REPLACE FUNCTION "json_object_del_path"( "json" json, "key_path&q ...
- 开源的连接池技术DBCP和C3P0
概述: Sun公司约定: 如果是连接池技术,需要实现一个接口! javax.sql.DataSource; 相关jar包和资料下载 1.1 DBCP连接池: l DBCP 是 Apache 软 ...
- .NET DataTable转化为json格式
标准的json用“分隔,不用' public static string DataSetToJson(DataTable dt) { string json = string.Empty ...
- EasyUI-在行内进行表格的增删改操作
第一篇笔记中记录了如何实现表格的增删改,那个是点击之后跳出来一个对话框然后进行的,这里是在表格本身上进行的操作,也很简单,但是这里发现一个版本问题,也可以说是兼容性问题. 1.首先我们看引用的js和c ...
- 介绍 JSON
出自官网:http://www.json.org/json-zh.html JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于 ...