当客户端通过读/写/接受操作断开连接时,抛出SocketException错误。
当抛出SocketException时,我很想知道有关'Client'套接字的详细信息 -
即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()
}
}
答案 0 :(得分:0)
我认为这不可能通过SocketException。
但是如果你有精心设计的try-catch,那么从其他地方获取Socket.RemoteEndPoint并不困难,例如你使用的Socket对象。