标签: broadcasting

使用UDP在Wifi Direct上广播

我是wifi直接新手,我希望能够播放一条消息,因为我有一个时间轴,当我点击发布按钮时,我希望所有连接的设备都在他们的时间轴上显示该消息.我能够发送数据对等.我搜索过这个主题,我发现使用UDP是一个不错的选择,但我不知道如何在wifi直接实现它.

我发现这个代码在wifi上使用UDP来获取广播地址

InetAddress getBroadcastAddress() throws IOException {
WifiManager wifi = mContext.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcp = wifi.getDhcpInfo();
// handle null somehow

int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
byte[] quads = new byte[4];
for (int k = 0; k < 4; k++)
  quads[k] = (byte) ((broadcast >> k * 8) & 0xFF);
return InetAddress.getByAddress(quads);} 
Run Code Online (Sandbox Code Playgroud)

这适用于发送和接收UDP广播包

DatagramSocket socket = new DatagramSocket(PORT);
socket.setBroadcast(true);
DatagramPacket packet = new DatagramPacket(data.getBytes(), data.length(),
getBroadcastAddress(), DISCOVERY_PORT);
socket.send(packet);

byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length); …
Run Code Online (Sandbox Code Playgroud)

android broadcasting wifi-direct

5
推荐指数
1
解决办法
3686
查看次数

在 android 上开发电子邮件客户端应用程序

我正在尝试开发一个用于在 Android 平台上发送和接收电子邮件的小应用程序。目前我一直在使用 Javamail api 尝试发送电子邮件。但是我想,如果我使用 javamail 实现我的应用程序,我将如何接收电子邮件并从我的应用程序收到我收到的通知?这与在 Android 上找到的 Service 和 Provder 类有关吗?我是一个完整的 android 初学者。

我也试过这里找到的这段代码:

Android 编程 - 发送邮件

没有运气,因为应用程序不起作用。

email provider service android broadcasting

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

广播到多个客户端的MulticastSocket与DatagramSocket

当一个服务器向多个客户端广播时,哪个是更快/更高效的实现:MulticastSocket还是DatagramSocket?

请讨论一下解释,谢谢!

传递的消息涉及字符串和浮点数.

java networking broadcasting

4
推荐指数
1
解决办法
4553
查看次数

Flutter - 每次页面更改时运行一个函数

我想在每次页面更改时运行一个函数Flutter application

理想情况下,我不想在initState每个页面中调用此函数,因为有时人们可能会忘记在新页面中添加调用。

将其视为middleware- 基本上在页面加载之前等,需要运行一些代码。

更新代码以供审核

import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:myapp/pages/login_page.dart';
import 'package:myapp/pages/dashboard_page.dart';
import 'package:myapp/styles/constants.dart';
import 'package:myapp/services/auth_service.dart';

Future<void> main() async {
  // create a auth service instance
  AuthService authService = AuthService(secureStorage: FlutterSecureStorage());
  bool isLoggedIn = await authService.isUserLoggedIn();

  // run the app
  runApp(MyApp(
    isLoggedIn: isLoggedIn,
  ));
}

class MyApp extends StatefulWidget {
  final bool isLoggedIn;

  MyApp({this.isLoggedIn});

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> with RouteAware {
  final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>(); …
Run Code Online (Sandbox Code Playgroud)

events broadcasting flutter

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

使用Boost.Asio进行广播问题

如果之前已经回答了这个问题,我会事先道歉,但我已经搜索过,发现什么都没有帮助我.正如问题的标题所示,我正在尝试将一个包从服务器广播到一组客户端来监听任何消息.

客户端将计算在一秒钟内收到的消息数.

服务器端的事情是这样的:

class Server
{
public:

    Server(boost::asio::io_service& io)
        : socket(io, udp::endpoint(udp::v4(), 8888))
        , broadcastEndpoint(address_v4::broadcast(), 8888)
        , tickHandler(boost::bind(&Server::Tick, this, boost::asio::placeholders::error))
        , timer(io, boost::posix_time::milliseconds(20))
    {
        socket.set_option(boost::asio::socket_base::reuse_address(true));
        socket.set_option(boost::asio::socket_base::broadcast(true));

        timer.async_wait(tickHandler);
    }

private:

    void Tick(const boost::system::error_code&)
    {
        socket.send_to(boost::asio::buffer(buffer), broadcastEndpoint);

        timer.expires_at(timer.expires_at() + boost::posix_time::milliseconds(20));
        timer.async_wait(tickHandler);
    }

private:

    udp::socket socket;
    udp::endpoint broadcastEndpoint;

    boost::function<void(const boost::system::error_code&)> tickHandler;
    boost::asio::deadline_timer timer;

    boost::array<char, 100> buffer;
Run Code Online (Sandbox Code Playgroud)

};

它已初始化并以下列方式运行:

int main()
{
    try
    {
        boost::asio::io_service io;
        Server server(io);
        io.run();
    }
    catch (const std::exception& e)
    {
        std::cerr << e.what() << "\n";
    }

    return 0;
} …
Run Code Online (Sandbox Code Playgroud)

c++ udp broadcasting boost-asio

3
推荐指数
1
解决办法
6318
查看次数

Laravel事件广播不适用于推送器

我在项目中使用了pusher。我根据laravel文档配置广播。当我解雇事件推送器时,它对我不起作用。但是,当我从Pusher控制台发送数据时,Pusher会接收此数据。我也尝试过vinkla / pusher。它的工作正常,但laravel事件广播不起作用。请帮我。

这是我的TestEvent.php代码

namespace Factum\Events;

use Factum\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class TestEvent implements ShouldBroadcast
{
    use SerializesModels;

    public $text;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($text)
    {
        $this->text = $text;
    }

    /**
     * Get the channels the event should be broadcast on.
     *
     * @return array
     */
    public function broadcastOn()
    {
        return ['test-channel'];
    }
}
Run Code Online (Sandbox Code Playgroud)

events broadcasting laravel pusher

3
推荐指数
1
解决办法
3383
查看次数

使用排列在Python中进行广播

我理解,transpose在一个ndarray意图是相当于matlab的permute功能,但我有一个不起作用的特定用例.在matlab中我有以下内容:

C = @bsxfun(@times, permute(A,[4,2,5,1,3]), permute(B, [1,6,2,7,3,4,5])
Run Code Online (Sandbox Code Playgroud)

其中A是形状为NxNxM的3D张量,B是形状为NxNxMxPxP的5D张量.上述功能旨在对循环kronecker产品进行矢量化.我假设Matlab为A和B添加了2个单独的维度,这就是为什么它能够重新排列它们.我希望将此代码移植到Python,但我不认为它具有添加这些额外维度的能力..我发现成功地增加了额外的尺寸,但是广播不是同样的matlab bsxfun.我试过了明显的翻译(是的,我正在使用numpy来实现这些ndarray和功能):

A = A[...,None,None]
B = B[...,None,None]
C = transpose(A,[3,1,4,0,2])*transpose(B,[0,5,1,6,2,3,4])
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

return transpose(axes)
ValueError: axes don't match array
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是reshape在A和B上添加这些单例维度?

我现在收到以下错误:

mults = transpose(rho_in,[3,1,4,0,2])*transpose(proj,[0,5,1,6,2,3,4])
ValueError: operands could not be broadcast together with shapes (1,9,1,9,8) (9,1,9,1,8,40,40)
Run Code Online (Sandbox Code Playgroud)

编辑:修改我的问题是减少添加单例维度,但更多关于在python中正确地广播这个matlab乘法.

python matlab vectorization broadcasting permute

3
推荐指数
1
解决办法
211
查看次数

ValueError:在 groupby 对象上调用 pandas value_counts() 时,操作数无法与形状一起广播

我知道对此错误消息有很多疑问。然而我还没有找到一个有这个确切问题的人。

我正在尝试对 pandas DataFrame 进行分组并计算值:

allfactor = dataframe.groupby(factor)[reference_area].value_counts()
Run Code Online (Sandbox Code Playgroud)

其中factor和reference_area是数据框中的列名称。这适用于某些列,例如DGD015,但不适用于包括factor在内的其他列。
它给了我错误:

ValueError: operands could not be broadcast together with shape (421,) (419,)
Run Code Online (Sandbox Code Playgroud)

我将把完整的错误消息放在这个问题的末尾。
分组本身有效:

In: grouped = data.groupby(factor)[reference_area]
    grouped
Out: <pandas.core.groupby.generic.SeriesGroupBy object at 0x0000000B39D0F5F8>
Run Code Online (Sandbox Code Playgroud)

我可以看到这是一个 numpy 广播错误,因为尺寸不具有相同的形状而发生。并且有一些解决方法,例如在尝试乘以不“适合”且无法从中得到任何维度的维度时,使用[:, np.newaxis]地球科学研究计算)或[:,None]如何像计算机科学家一样思考:使用 Python 3 学习)伸展。

但是,当numpy中发生错误时,我不知道如何执行此操作,这是由pandas调用的,而pandas是通过调用value_counts()来调用的。

有人在这里有解决方法的想法吗?

我如何在这里访问 numpy 来告诉它只添加包含 NAN 的新轴以使尺寸适合?

这是完整的错误消息:

ValueError          Traceback (most recent call last)
ipython-input-5-013b5262b34f> in module>()
----> 1 trial = get_positives_threshold(data, 'SHB23D', 'HV001', threshold=90)
      2 print(trial)
ipython-input-3-80d69965e883> in get_positives_threshold(dataframe, factor, reference_area, …
Run Code Online (Sandbox Code Playgroud)

python numpy broadcasting pandas

3
推荐指数
1
解决办法
3482
查看次数

音频广播

我想通过互联网做一个用于播放音频的i-phone应用程序..任何人请指导我......

iphone audio objective-c broadcasting

2
推荐指数
1
解决办法
305
查看次数

进程间通信和BroadCasting

我正在进行一个进程间通信.我遇到了命名管道通信.

我已经有了一些基本的想法,但需要确保以下几点?

  1. 名称管道是否可以同时拥有多个客户端?

  2. 它是否支持通过不同语言构建的不同流程进行通信.

请告诉我,命名管道通信和进程间通信广播有什么区别?

c# named-pipes broadcasting interprocess

2
推荐指数
1
解决办法
995
查看次数