Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De eenvoudigste pijpserver maakt één exemplaar van een pijp, maakt verbinding met één client, communiceert met de client, verbreekt de verbinding met de client, sluit de pijpgreep en beëindigt. Het is echter gebruikelijker dat een pijpserver communiceert met meerdere pijpclients. Een pipe-server kan één pipe-exemplaar gebruiken om verbinding te maken met meerdere pijpclients door verbinding te maken met en de verbinding met elke client op volgorde te verbreken, maar de prestaties zouden slecht zijn. De pipe-server moet meerdere pipe-exemplaren maken om meerdere clients tegelijkertijd efficiënt te kunnen verwerken.
Er zijn drie basisstrategieën voor het onderhouden van meerdere pijpexemplaren.
- Maak een afzonderlijke thread voor elk exemplaar van de pijp. Zie Multithreaded Pipe Servervoor een voorbeeld van een multithreaded pipe-server.
- Gebruik overlappende bewerkingen door een OVERLAPPED- structuur op te geven in de ReadFile-, WriteFile-en ConnectNamedPipe--functies. Zie voor een voorbeeld Named Pipe Server using Overlapped I/O.
- Gebruik overlappende bewerkingen met behulp van de functies ReadFileEx en WriteFileEx, waarmee een voltooiingsroutine wordt opgegeven die moet worden uitgevoerd wanneer de bewerking is voltooid. Zie bijvoorbeeld Named Pipe Server Using Completion Routines.
De multithreaded pipe-server is het eenvoudigst te schrijven, omdat de thread voor elk exemplaar communicatie verwerkt voor één pipe-client. Het systeem wijst naar behoefte processortijd toe aan elke thread. Maar elke thread maakt gebruik van systeembronnen, wat een nadeel is voor een pijpserver die een groot aantal clients verwerkt.
Met een server met één thread is het eenvoudiger om bewerkingen te coördineren die van invloed zijn op meerdere clients en is het eenvoudiger om gedeelde resources te beveiligen tegen gelijktijdige toegang door meerdere clients. De uitdaging van een server met één thread is dat het coördinatie van overlappende bewerkingen vereist om processortijd toe te wijzen voor het afhandelen van de gelijktijdige behoeften van clients.