要件 (変更できません)
Windowsフォームアプリケーションがあります。このアプリケーションを実行すると、UDPポートをリッスンします。
ユーザーは、Windowsにログインして同じアプリケーションを開いて実行し、ログアウトせずにWindowsユーザーを切り替えて、同じアプリケーションを開いて実行することができます。
問題
2つのアプリケーションは、を使用して同じポートをリッスンしています
SocketOptionName.ReuseAddress
このスレッドに示されているように。ただし、データを取得できるのは1人だけです。
質問
別のユーザーのアプリケーションがデータを読み取ることができるようにする方法はありますか?それ以外の場合、Windowsユーザースイッチについて通知するイベントをなんとかして聞くことができますか?
編集
リスナーの設定に使用されるコードは次のとおりです
IPEndPoint localEndPoint = new IPEndPoint(localAddress, listenPort);
UdpClient udpListener = new UdpClient();
udpListener.ExclusiveAddressUse = false;
udpListener.Client.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReuseAddress, true);
udpListener.Client.Bind(localEndPoint);
IPEndPoint ep = new IPEndPoint(IPAddress.Any, 0);
byte[] answer = udpListener.Receive(ref ep);