Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Socket.RemoteEndPoint来自SocketException_C#_.net_Sockets_Socketexception - Fatal编程技术网

C# Socket.RemoteEndPoint来自SocketException

C# Socket.RemoteEndPoint来自SocketException,c#,.net,sockets,socketexception,C#,.net,Sockets,Socketexception,当客户端通过读/写/接受操作断开连接时,会引发SocketException错误 当抛出SocketException时,我希望了解有关“客户端”套接字的详细信息- 即Socket.RemoteEndPoint 有没有办法从SocketException对象获取此信息 我特别感兴趣的是从BeginAccept/EndAccept例程获取请求详细信息 private Socket _listeningSocket; // _listeningSocket.Bind().Listen()._Begi

当客户端通过读/写/接受操作断开连接时,会引发SocketException错误

当抛出SocketException时,我希望了解有关“客户端”套接字的详细信息-

即Socket.RemoteEndPoint

有没有办法从SocketException对象获取此信息

我特别感兴趣的是从BeginAccept/EndAccept例程获取请求详细信息

private Socket _listeningSocket;
// _listeningSocket.Bind().Listen()._BeginAccept().etc

public static void _BeginAccept()
{
    _listeningSocket.BeginAccept(new new AsyncCallback(_EndAccept),null);
}

public static void _EndAccept(IAsyncResult ar)
{
    try
    {
        Socket acceptedSocket = _listeningSocket.EndAccept(ar);
        Process(acceptedSocket);
    }
    catch(SocketException se)
    {
        /////////////////////////////////////////////////
        // Who tried to connect to my _listeningSocket!!!
        /////////////////////////////////////////////////
    }
    finally
    {
        _BeginAccept()
    }
}

我认为这不可能通过SocketException实现


但是,如果您有精心设计的try-catch,那么从其他地方(例如您使用的套接字对象)获取Socket.RemoteEndPoint并不困难。

感谢您的回复lextm:请查看上面的示例。请注意,这是用于接受的。嗯,我不知道看看别人有没有建议。