Android发送UDP广播

原创 2016年06月01日 10:03:00

TCP/IP是一个协议族。TCP、UDP都是其中的组成部分,IP位于它们之下。
                                   
                 +------+ +-----+ +-----+     +-----+ 
                 |Telnet| | FTP | | TFTP| ... | ... | 
                 +------+ +-----+ +-----+     +-----+ 
                       |   |         |           |    
                      +-----+     +-----+     +-----+ 
                      | TCP |     | UDP | ... | ... | 
                      +-----+     +-----+     +-----+ 
                         |           |           |    
                      +--------------------------+----+
                      |    Internet Protocol & ICMP   | (Internet Protocol就是IP 协议)
                      +--------------------------+----+
                                     |                
                        +---------------------------+ 
                        |   Local Network Protocol  | 
                        +---------------------------+ 

                         Protocol Relationships


只有UDP才支持广播,TCP是不支持广播的。
=====================================================                        
广播有两种,
一种是directed broadcast,比如你的网段是192.168.0.X,你就往192.168.0.255发就可以了。
另一种是limited broadcast,广播地址是255.255.255.255

在IP服务上使用地址值255来表示广播地址,例如:传输信号给192.168.1.255,其实就是传输信号给192.168.1.0子网络内每一台系统。如果你不知道本地子网络地址,可以使用地址255.255.255.255作为广播地址。

limited broadcast需要做一个SetSockopt():
  broadcast:integer;;
  broadcast:=1;
 SetSockopt(FSocket,SOL_SOCKET,SO_BROADCAST, @broadcast,sizeof(broadcast));

两者都是可以的。
directed broadcast不需要SetSockopt(),以标准的C类网为例,直接发送x.x.x.255就可以了,
这种广播只有同一逻辑子网中的机器才能收到,也就是说对方地址应该是x.x.x.y,如果不是
即使在同一物理子网中也是收不到的。当然,这和子网掩码有关。

limited broadcast必须有SetSockopt(FSocket,SOL_SOCKET,SO_BROADCAST, @broadcast,sizeof(broadcast));
它的广播地址是255.255.255.255,它的好处是只要在同一子网中的主机,就可以收到这种
广播,而不必非要在统一逻辑子网中,例如,如果你的地址是x.x.x.1,那么这种广播,地址是x.y.z.a的主机也能收到。

版权声明:本文为博主原创文章,未经博主允许不得转载。擅自转载将负法律责任! 举报

相关文章推荐

android UDP多点广播,并自动建立Socket连接

如题所示,本文要写的是两台或多台android设备,其中有一台作为服务端,则另外一台或几台作为客户端,然后通过UDP进行自动连接.其实现的原理很简单,服务端这一边通过MulticastSocket将自...

Android上实现TCP&UDP的客户端和服务端

activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" an...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

udp广播发送数据

//server#include   #include   #include   #include   #include   #include   #inc...

Android发送和接收UDP广播

在Android平台上实现UDP广播的发送和接收

android发送UDP广播及在PC上接受广播数据

android端,发送UDP广播包:   public class WifiBroadcastActivity extends Activity {  private static St...

Android 发送广播

发送广播各个APP可以通过binder调用AMS的广播发送接口,发送广播,各个APP是消息发布/订阅模型中的消息发布端使用实例广播按照处理的速度分为:前台广播和后台广播 广播按照AMS处理方式分为:...

Android-udp广播

DatagramSocket类用于创建接收和发送UDP的Socket实例。和Socket类依赖SocketImpl类一样,DatagramSocket类的实现也依靠专门为它设计的DatagramSco...

Android发送广播与接收广播

可以通过发送广播传送数据  1.发送无序广播,调用sendBroadcase(intent) 即可,给 intent 设置 action ,也可以携带数据 public void sendbroad...

UDP协议发送、接收广播包 .

网络通信基础 如果网络中两个主机上的应用程序要相互通信,其一要知道彼此的IP,其二要知道程序可监听的端口。因为同一主机上的程序使用网络是通过端口号来区分的。 UDP Socket的使用过程: 1...

linux socket UDP编程发送广播

#include #include #include #include #include #include #include #include #include #include ...
  • maopig
  • maopig
  • 2012-03-08 10:55
  • 11982
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)