是否有一个 dot42 等效于 System.Net.Sockets.UdpClient



首先,我是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);
            }
        }
    }
}

Dot42 是非常有前途的项目,仍然缺少的是更完整的 BCL 集。

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

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

相关内容

最新更新