【问题标题】:Is there a dot42 equivalent to System.Net.Sockets.UdpClient?是否有等效于 System.Net.Sockets.UdpClient 的 dot42?
【发布时间】:2014-01-25 21:24:22
【问题描述】:

首先,我是 Android 和 dot42 的新手。我已经构建了一个 UDP 侦听器类,它在 Windows 应用程序中运行良好。我正在使用 System.Net.Sockets.UdpClient 类。

现在,我尝试在 dot42 项目中使用我的 UDP 侦听器类,但收到错误消息

找不到类型 System.Net.Sockets.UdpClient。

我猜,这个类在 dot42 中不可用?

有没有一种方法可以在 Android 应用程序中使用相同的代码(或只进行一些修改)?

using System;
using System.Net;
using System.Net.Sockets;

namespace FSInterface
{
    public class UDPReceiver
    {
        private UdpClient _udpRx;
        private IPEndPoint ep;
        private int _port;

        public delegate void BytesReceive(byte[] buffer);
        public event BytesReceive OnBytesReceive;

        public UDPReceiver(int port)
        {
            _port = port;
            _udpRx = new UdpClient();
            _udpRx.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
            _udpRx.ExclusiveAddressUse = false;
            ep = new IPEndPoint(IPAddress.Any, _port);
            _udpRx.Client.Bind(ep);
            _udpRx.BeginReceive(new AsyncCallback(ReceiveCallback), null);
        }

        private void ReceiveCallback(IAsyncResult ar)
        {
            _udpRx.BeginReceive(new AsyncCallback(ReceiveCallback), null);

            byte[] buffer = _udpRx.EndReceive(ar, ref ep);

            if (OnBytesReceive != null)
            {
                OnBytesReceive(buffer);
            }
        }
    }
}

【问题讨论】:

    标签: c# android sockets udpclient dot42


    【解决方案1】:

    Dot42 是一个很有前途的项目,还缺少更完整的 BCL 集。

    在这种情况下,您应该使用 java 类。您可以在 java 中找到许多客户端 UDP 代码示例。如果您想在常规 .NET 和 dot42 之间共享代码,则必须使用 udp 方法的接口,并为常规 .NET 和 Dot42 分别实现。

    【讨论】:

    • 谢谢,我会调查的。让我们期待dot42的进一步发展。在那之前,我想我毕竟必须学习一些 Java...
    【解决方案2】:

    一点更新。我们在 Apache License 2.0 下发布了 .NET 实现。您现在可以自己添加缺少的类型。 https://github.com/dot42/api.

    【讨论】:

    • 这是否意味着上面的代码可以立即运行?还是我必须自己提供源代码中的类型定义?
    • 没有。是的或其他人。检查 repo 自述文件以获取说明。
    猜你喜欢
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    相关资源
    最近更新 更多