Closed zcteo closed 4 years ago
@zcteo It seems to work, with the following code I get the ipaddress and port of the client. static void Main(string[] args) { using (var rep = new RouterSocket()) using (var req = new DealerSocket()) using (var monitor = new NetMQMonitor(rep, "inproc://rep.inproc", SocketEvents.Accepted | SocketEvents.Disconnected)) { monitor.Accepted += (s, a) => { Console.WriteLine("local accept " + a.Address); Console.WriteLine("accept " + a.Socket.RemoteEndPoint);
};
monitor.Disconnected+= (s, a) =>
{
Console.WriteLine("local disconnected " + a.Address);
Console.WriteLine("disconnected " + a.Socket.RemoteEndPoint);
};
monitor.Timeout = TimeSpan.FromMilliseconds(100);
var monitorTask = Task.Factory.StartNew(monitor.Start);
Thread.Sleep(10);
var port = rep.BindRandomPort("tcp://0.0.0.0");
req.Connect("tcp://127.0.0.1:" + port);
Thread.Sleep(50);
req.Dispose();
monitor.Stop();
}
}
I Will close this issue, if problem still exist please reopen.
@dxdjgl sometimes, e.Socket could throw an exception
Environment
A RouterSocket as server, and the clients are DealerSockets. Use a Monitor to listen the RouterSocket 's Disconnected event. When listened to the client disconnected, how to confirm which client is disconnected.