Проблема в следующем Есть сервер именнованных каналов
| Код | procedure TForm1.FormCreate(Sender: TObject); begin //Создание события на сервере Evntserver:= CreateEvent(Nil, FALSE, FALSE, Nil); if EvntServer=0 then begin ShowMessageFmt('Ошибка %d при создании объекта событие', [GetLastError]); CloseHandle(PipeHandle); exit; end; end; procedure TForm1.Button1Click(Sender: TObject); begin // Создание именованного канала PipeHandle:= CreateNamedPipe('\\.\Pipe\Jim', PIPE_ACCESS_DUPLEX or FILE_FLAG_OVERLAPPED, PIPE_TYPE_BYTE or PIPE_READMODE_BYTE or PIPE_NOWAIT, 3,0, 0, 1000, Nil); if PipeHandle= INVALID_HANDLE_VALUE then begin ShowMessageFmt('Ошибка %d при создании именованного канала', [GetLastError]); exit; end; ShowMessage('Сервер работает.Создайте клиента'); end;
|
так же описан клиент:
| Код | procedure TForm1.Button2Click(Sender: TObject); begin strcat(@pipe_Name,'\\.\Pipe\Jim'); if WaitNamedPipe(@PIPE_NAME, NMPWAIT_WAIT_FOREVER) = False then begin ShowMessageFmt('Функция WaitNamedPipe завершена с ошибкой %d',[GetLastError]); exit; end; // Открытие экземпляра именованного канала PipeClient:=CreateFile(@PIPE_NAME,GENERIC_READ or GENERIC_WRITE, 0,
Nil, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED, 0); if PipeClient= INVALID_HANDLE_VALUE then begin ShowMessageFmt('Функция CreateFile завершена с ошибкой %d', [GetLastError]); end else ShowMessage('Клиент работает'); end;
|
Проблема в следующем, при запуске второго клиента, клиент зависает... как сделать, чтоб подключилось несколько клиентов...?
|