首先,我是Android和dot42的新手。我建立了一个UDP监听器类,该类在Windows应用程序中可以正常工作。我正在使用System.Net.Sockets.UdpClient类。
现在,我尝试在dot42项目中使用我的UDP监听器类,但收到错误消息
我猜想,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之间共享代码,则必须使用接口(interface)将udp方法与常规.NET和Dot42的单独实现一起使用。