1

我用方法监听特定端口BeginReceive()
如何找到发件人的IP?

谢谢你。

4

1 回答 1

3

我认为您应该详细说明您的问题。

无论如何,您可以在清晰详细的“异步服务器套接字示例”MSDN 示例中找到有关如何使用类BeginReceive()的其他异步方法的完整示例。Socket

您将阅读到的技巧是在您接受连接并要调用时初始化一个自定义状态对象(您可以在其中放置打开的 Socket 信息)BeginReceive,以便接收回调将能够使用IAsyncResult.AsyncResult属性检索该状态.

按照链接的示例,您可以通过这种方式检索“发送者”(远程)IP 地址(在 AcceptCallback、ReadCallback 中,其中 handler 是Socket类的一个实例):

IPAddress remoteAddress = ((IPEndPoint)handler.RemoteEndPoint).Address;
于 2012-05-18T17:34:44.570 回答