我正在尝试创建一个从许多客户端接收数据的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/