0
基本上我使用命名管道機制進行客戶端/服務器交互。當我突然關閉服務器時,我正面臨着問題,它只是斷開命名管道。由於沒有事件處理程序用於處理來自服務器端的錯誤消息,因此它只是等待某個動作發生,只在該動作發生時知道連接狀態並嘗試重新連接。我的要求是,只要服務器出現故障,我的客戶端應用程序就會收到通知,並嘗試連接到服務器,直到服務器不再回來。 連接到服務器的代碼。如何通知客戶端應用程序從服務器斷開namedpipe?
this._handle =
CreateFile(this._pipeName,
GENERIC_READ | GENERIC_WRITE,
0,
IntPtr.Zero,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
IntPtr.Zero);
// Could not create handle - server probably not running
if (this._handle.IsInvalid)
return;
this._connected = true;
// Start listening for messages
this._readThread = new Thread(new ThreadStart(Read));
this._readThread.Start();