c# - 为什么SocketAsyncEventArgs.RemoteEndpoint返回null? C#

标签 c# sockets asynchronous udp socketasynceventargs

我正在尝试创建一个从许多客户端接收数据的udp服务器。
当我从SocketAsyncEventArgs.RemoteEndpoint属性接收服务器中的数据后尝试获取客户端的远程端点时,它将重新运行为null。
但是,所有邮件均已正确传输。我正在我的本地PC中对此进行测试。

这是我的服务器端代码:

   static Socket FlashUDP = new Socket(AddressFamily.InterNetworkV6,


SocketType.Dgram, ProtocolType.Udp);
        static IPEndPoint rec_ipep = new IPEndPoint(IPAddress.Parse("fe80:0:0:0:e8dd:
c141:d9ab:80f3%12"), 14086);
        static SocketAsyncEventArgs Sock_Args = new SocketAsyncEventArgs();
        static byte[] dataHolder = new byte[8];

static void Main2(string[] args)
{
    Sock_Args.Completed += Sock_Args_Completed;
    Sock_Args.SetBuffer(dataHolder, 0, 4);
    FlashUDP.Bind(rec_ipep as EndPoint);
    Console.WriteLine("Reciving.. v2");
    FlashUDP.ReceiveAsync(Sock_Args);
}

private static void Sock_Args_Completed(object sender, SocketAsyncEventArgs e)
{
    if(e.RemoteEndPoint == null)
    {
        Console.WriteLine("Remote end point is null");
    }
}
/* Output: 
  Reciving.. v2
  Remote end point is null*/

这是一个错误还是有其他方法可以做同样的事情?
谢谢!

最佳答案

答案很简单,

我不知道使用什么错误ReciveAsync();但是如果我们设定socketAsyncEventArgs.RemoteEndpoint = new Ipendpoint(Ipaddress.Any, 0);然后打电话RecieveFromAsync(socketAsyncEventArgs);
现在当我们打印时

接收回调函数中的e.RemoteEndPoint()给出了远程端点。

关于c# - 为什么SocketAsyncEventArgs.RemoteEndpoint返回null? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53989230/

相关文章:

c# - 由于 ReflectionTypeLoadException,无法从程序集中检索 TypeInfo

c# - 有谁知道一个很好的工具(ASP.NET或兼容的),可以从一组图像生成Sprites和相应的CSS?

c# - 关于获得我不打算重复的套接字的问题

python - 扭曲/执行异步http请求

c# - 持续显示输入对话框,直到用户输入预期的输入 - Android

python - 我可以在 gevent 应用程序的 strace 输出中 grep 什么来测试它是否正在使用阻塞网络 IO?

c# - WCF 服务双重模拟?

sockets - 使用 MQTT 而不是 RAW TCP/IP 套接字?

c# - 一个套接字实例可以多次发送和接收吗?

c# - 实现重新排序方法的最佳方式是什么?