608

Именованные каналы

Пишу клиент-сервер на Named Pipes.Проблема в том,что при коннекте к серверу через \\.\ или через \\LocalNameвсе нормально - если сервер находится на одной машине с клиентом.Если же они находятся на разных машинах,или обращаемся через \\192.168.xxx.xxx\ к локальному серверу,то CreateFile клиента возвращает ERROR_PIPE_BUSY.Где собака зарыта?вот сервер:InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION)==0SetSecurityDescriptorDacl(&sd, TRUE, 0, FALSE)==0SECURITY_ATTRIBUTES sa = { sizeof (SECURITY_ATTRIBUTES), &sd, TRUE };PipeHandle=CreateNamedPipe (PipeName,PIPE_ACCESS_DUPLEX,PIPE_TYPE_MESSAGE,PIPE_UNLIMITED_INSTANCES,0,0,10000,&sa);while (1){ ZeroMemory(buf,sizeof(buf));ConnectNamedPipe(PipeHandle,0);ReadFile(PipeHandle,buf,sizeof(buf),&BytesRead,NULL);ExecuteCommands();WriteFile(PipeHandle,buf,sizeof(buf),&BytesWritten,NULL);FlushFileBuffers(PipeHandle); DisconnectNamedPipe(PipeHandle);}Вот Клиент:WaitNamedPipe(PChar(PipeName),NMPWAIT_WAIT_FOREVER);PipeHandle:=CreateFile(PChar(PipeName),GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);Buf:='';StrCopy(buf,PChar(Edit1.Text));WriteFile(PipeHandle,buf,2048,BytesWritten,0);ReadFile(PipeHandle,buf,2048,BytesRead,0);MessageBox(0,buf,'lalla',MB_OK);CloseHandle(PipeHandle);
0