当客户端通过读/写/接受操作断开连接时,会引发 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()
}
}