标签: broadcast

Linux上的Java:在绑定的本地地址上侦听广播消息

我有一个奇怪的要求,能够在Linux机器上从Java监听许多网络接口,并确定其中一个是否接收某种类型的UDP数据包.我需要的输出数据是相关接口的IP地址.有没有办法在Java中这样做?

通过通配符地址(新的DatagramSocket(端口))进行监听没有帮助,因为虽然我获得了广播数据包,但我无法确定它们所通过的接口的本地IP地址.在绑定到某个接口(新的DatagramSocket(端口,地址))时收听广播根本不接收数据包.这种情况值得一个代码示例,显示我正在尝试做的事情:

Enumeration interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
  NetworkInterface ni = (NetworkInterface) interfaces.nextElement();
  Enumeration addresses = ni.getInetAddresses(); 
  while (addresses.hasMoreElements()) { 
    InetAddress address = (InetAddress)addresses.nextElement();
    if (address.isLoopbackAddress() || address instanceof Inet6Address) 
      continue; //Not interested in loopback or ipv6 this time, thanks
    DatagramSocket socket = new DatagramSocket(PORT, address);
     //Try to read the broadcast messages from socket here
  }
}
Run Code Online (Sandbox Code Playgroud)

我还尝试使用基于接口的真实IP的开头构建的广播地址来初始化套接字,其余的根据正确的网络掩码:

byte [] mask = { (byte)255, 0, 0, 0 };
byte[] addrBytes = InetAddress.getByName("126.5.6.7").getAddress();
for (int i=0; i < 4; i++) …
Run Code Online (Sandbox Code Playgroud)

java linux networking udp broadcast

6
推荐指数
1
解决办法
8598
查看次数

接收来自N个客户端的响应,以响应UDP上的广播请求

我正在为特定类型的网络多媒体设备实现一种IP查找器.我想找出局域网中所有类型的活动设备,包括它们的IP地址和其他细节.

该设备有自己的设备发现方式.

它的工作原理如下:客户端通过UDP通过LAN发送广播请求.
目标端口号是固定的.
作为回应,LAN中理解此请求格式的所有服务器都将响应此请求,提供有关自身的信息.

我正在使用sendto()广播UDP请求消息.

现在我的问题是我不知道有多少设备(ieservers)会响应请求.

我需要多少次调用recvfrom()?
我什么时候才能知道我已经处理了所有设备的响应?
或者一般来说,recvfrom()是从多个服务器接收响应的正确选择吗?
有没有更好的(或者如果我错在这里是正确的)完成相同的方式?

我正在用C/C++编程,计划为Windows和Linux编写代码.
提前谢谢了.

编辑:所以在这里的所有网络编程向导的帮助下,我找到了解决我的问题的方法:)
select()对我来说就是这样的事情...非常
感谢所有花时间帮忙的人我

c c++ sockets udp broadcast

6
推荐指数
1
解决办法
2489
查看次数

寻找或建立进程间广播通信信道

所以我们在产品中有这种不寻常的需求.我们在本地主机上运行了许多进程,需要构建它们之间的通信方式.困难在于......

  1. 没有"服务器"或主进程
  2. 消息将广播到所有侦听节点
  3. 节点都是Windows进程,但可能是C++或C#
  4. 节点将同时以32位和64位运行
  5. 任何节点都可以随时跳入/跳出对话
  6. 异常终止的进程不应对其他节点产生负面影响
  7. 缓慢响应的进程也不应对其他节点产生负面影响
  8. 节点不需要"监听"广播消息

一些更重要的细节......

我们需要发送的"消息"本质上是微不足道的.消息类型的名称和单个字符串参数就足够了.

通信不一定是安全的,不需要提供任何认证或访问控制手段; 但是,我们希望通过Windows登录会话对通信进行分组.这里可能感兴趣的是,非升级过程应该能够与升高的过程相互作用,反之亦然.

我的第一个问题是:是否存在一个现有的开源库?或者可以用来轻松实现这一目标的东西.截至目前我还没有找到任何东西:(

如果这个库不存在那么......你会用什么技术来解决这个问题?套接字,命名管道,内存映射文件,事件句柄?似乎基于连接的传输(套接字/管道)在完全连接的图形中是个坏主意,因为n个节点需要n(n-1)个连接.使用事件句柄和某种形式的共享存储似乎是目前最合理的解决方案......

更新

  • 它必须可靠且有保证吗?是的,没有......让我们说如果我正在倾听,而且我在合理的时间内做出回应,那么我应该总是得到这个消息.

  • 什么是典型的邮件大小?少于100个字节,包括消息标识符和参数.这些都很小.

  • 我们在谈论什么消息率?低吞吐量是可以接受的,每秒10个会很多,平均使用率大约是每分钟1个.

  • 涉及的流程数量是多少?我希望它处理0到50之间,平均值在5到10之间.

.net c# c++ ipc broadcast

6
推荐指数
1
解决办法
1766
查看次数

收听特定端口时接收广播的数据包

当设置套接字dgram.createSocket('udp4');并且不将其绑定到特定端口时,我会接收发送到255.255.255.255的广播数据包但是当我将相同的套接字绑定到我的接口的特定IP时,我this.server.bind(67, host);将不会收到这些广播的数据包.这是正常行为吗?

javascript networking udp broadcast node.js

6
推荐指数
1
解决办法
1689
查看次数

在特定时间调用Android手机配置文件模式

如何在特定时间自动更改Android手机配置文件模式.

我想这下发展变化建立一个时间表,并在特定的时间安排,轮廓模式自动切换到所需的模式的应用程序.

我该怎么办

profile android broadcast broadcastreceiver

6
推荐指数
0
解决办法
223
查看次数

$使用AngularJS观察服务变量或$广播事件

我正在使用服务在控制器之间共享数据.应用程序必须在修改变量时更新DOM.我找到了两种方法,你可以在这里看到代码:

http://jsfiddle.net/sosegon/9x4N3/7/

myApp.controller( "ctrl1", [ "$scope", "myService", function( $scope, myService ){
    $scope.init = function(){
        $scope.myVariable = myService.myVariable;
    };
}]);
Run Code Online (Sandbox Code Playgroud)

myApp.controller( "ctrl2", [ "$scope", "myService", function( $scope, myService ){
    $scope.increaseVal = function(){
        var a = myService.myVariable.value;
        myService.myVariable.value = a + 1;
    };
}]);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/sosegon/Y93Wn/3/

myApp.controller( "ctrl1", [ "$scope", "myService", function( $scope, myService ){
    $scope.init = function(){
        $scope.increasedCounter = 1;
        $scope.myVariable = myService.myVariable;
    };
    $scope.$on( "increased", function(){
        $scope.increasedCounter += 1;
    }
}]);
Run Code Online (Sandbox Code Playgroud)

myApp.controller( "ctrl2", [ "$scope", "myService", function( $scope, myService ){
    $scope.increaseVal …
Run Code Online (Sandbox Code Playgroud)

broadcast watch angularjs

6
推荐指数
1
解决办法
9982
查看次数

从一个apk /包发送广播到另一个apk /包

我需要从我的一个应用程序向另一个应用程序发送广播..任何帮助!我的应用程序包是1)com.demo.database和2)com.demo.list

 Intent themesIntent = new Intent(ThemesManager.THEMES_UPDATED);
 themesIntent.putExtra("package", packageName);
 ctx.sendBroadcast(themesIntent);
Run Code Online (Sandbox Code Playgroud)

不工作..

编辑:

<receiver android:name="com.sample.ThemesUpdatedReceiver">
        <intent-filter>
            <action android:name="com.sample.THEMES_UPDATED"/>
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

android broadcast package

6
推荐指数
2
解决办法
6865
查看次数

iOS音频/视频直播解决方案

我正在为Android和iOS开发社交应用程序,iOS和Server工作已经开始.

我们的应用需要使用我们的应用向最终用户广播实时音频/视频.我们尝试过使用RED5和WOWZA设置服务器.

在iOS中我们遇到了来自RED5 iOS SDK的广播公司的崩溃,错误的框架所以我们搬到了WOWZA的试用版

在实施了适用于iOS的WOWZA GoCoder SDK之后,我们发现它的许可证对我来说太贵了8000美元+ 2000美元/年维护:(

午夜编码器似乎从评论中出错(我还没有将它用于广播客户端)

任何人都可以推荐我使用好的iOS SDK或一些自定义方式来实现我的移动相机的直播流媒体.

任何帮助将受到高度赞赏.谢谢

broadcast broadcasting video-streaming ios

6
推荐指数
1
解决办法
601
查看次数

ValueError:操作数无法与形状一起广播-inverse_transform-Python

我知道ValueError问题已被问过很多。我仍在努力寻找答案,因为我inverse_transform在我的代码中使用。

说我有一个数组 a

a.shape
> (100,20)
Run Code Online (Sandbox Code Playgroud)

和另一个数组 b

b.shape
> (100,3)
Run Code Online (Sandbox Code Playgroud)

当我做了一个np.concatenate

hat = np.concatenate((a, b), axis=1)
Run Code Online (Sandbox Code Playgroud)

现在的形状hat

hat.shape    
(100,23)
Run Code Online (Sandbox Code Playgroud)

在此之后,我尝试这样做,

inversed_hat = scaler.inverse_transform(hat)
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到一个错误:

ValueError:操作数无法与形状一起广播 (100,23) (25,) (100,23)

这是广播错误inverse_transform吗?任何建议都会有所帮助。提前致谢!

python arrays numpy broadcast scikit-learn

6
推荐指数
1
解决办法
1万
查看次数

是否可以使用 BLE 广播模式发送数据?

我想问您是否可以以广播模式将数据(字符串)从 BLE 设备(例如 Raspberry Pi、Onion 或带有蓝牙加密狗的 Arduino)发送到另一个设备(例如电话或另一个 Raspberry Pi) ,这将在屏幕上显示数据。

老实说,没有必要在屏幕上显示数据,但其他设备必须能够用我将创建的 C 程序详细说明接收到的数据。

我对这个主题进行了大量研究,但我只能找到有关信标的答案,这些对象无法为我的项目发送有用的数据(如字符串),或者必须相互连接才能发送/接收数据的 BLE 设备。

我想用 C 创建一个程序,以实现这个结果。我在 BlueZ 库中搜索了一些有用的东西,但我找不到任何东西,因为它们没有解释其函数的含义。如果可能的话,我不想创建一个 android/iOS 应用程序。

c broadcast bluetooth-lowenergy

6
推荐指数
1
解决办法
6724
查看次数