从IAsyncResult UDP中提取IP

3

我希望能从 IAsyncResult 对象中提取UDP的IP地址,在 EndReceive 方法中(IAsyncResult ar参数)。

如果有可能,该如何实现呢?

这是代码:

public void End_Receive(IAsyncResult ir)
{
        //Here I need the sender IP
        ServerSocket.EndReceive(ir);
        ReceivedMessage =  System.Text.UnicodeEncoding.Unicode.GetString(buffer);
}

提供一些您尝试过的代码。 - Mask
你的标题提到了TCP,但是你的问题提到了UDP。你实际上使用的是哪个? - Remy Lebeau
非常抱歉,我的意思是UDP。 - Free User
1个回答

2
如果您使用TCP或连接的UDP,请使用Socket.LocalEndPointSocket.RemoteEndPoint属性。
如果您使用无连接的UDP,则应该使用Begin/EndReceiveFrom()而不是Begin/EndReceive()。回调提供了发送者的EndPoint
无论哪种方式,给定一个EndPoint对象,将其转换为IPEndPoint并使用其Address属性来访问IP地址即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接