3

我想从方法中的IAsyncResultUDP 对象中提取 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);
}
4

1 回答 1

2

如果您使用 TCP 或连接的 UDP,请使用Socket.LocalEndPointSocket.RemoteEndPoint属性。

如果您使用的是无连接 UDP,则应该Begin/EndReceiveFrom()使用Begin/EndReceive(). 回调为EndPoint发送者提供了一个。

无论哪种方式,给定一个EndPoint对象,将其转换为 anIPEndPoint并使用其Address属性访问 IP 地址。

于 2013-07-02T16:02:41.860 回答