C# Socket.RemoteEndPoint来自SocketException
当客户端通过读/写/接受操作断开连接时,会引发SocketException错误 当抛出SocketException时,我希望了解有关“客户端”套接字的详细信息- 即Socket.RemoteEndPoint 有没有办法从SocketException对象获取此信息 我特别感兴趣的是从BeginAccept/EndAccept例程获取请求详细信息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
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:请查看上面的示例。请注意,这是用于接受的。嗯,我不知道看看别人有没有建议。