Notas sobre la comunicación por tuberías

Consideraciones de programación

1. Si el cliente de tubería con nombre está abierto, la función forzará el cierre de la tubería. Para las tuberías cerradas con DisconnectNamedPipe, el cliente también debe usar CloseHandle. el último tubo.

2. Los identificadores hFile de ReadFile y WriteFile son devueltos por CreateFile y ConnectNamedPipe.

3. Antes de que otro cliente establezca un identificador de tubería que ha sido conectado por un cliente a través de ConnectNamedPipe, el servidor debe usar la función DisconnectNamedPipe para desconectar por la fuerza la conexión existente. La desconexión de la canalización en el lado del servidor provocará la pérdida de datos en la canalización. El uso de la función FlushFileBuffers puede garantizar que los datos no se pierdan.

4. El servidor de canalización con nombre puede usar la función ConnectNamedPipe a través de un identificador de tubería recién creado o un identificador de tubería que se ha conectado a otros clientes, pero antes de conectar un nuevo cliente, el servidor debe usar la función DisconnectNamedPipe. Corte el identificador de cliente anterior; de lo contrario, ConnectNamedPipe devolverá False.

5. Modo de bloqueo, este modo solo es válido para "operaciones de canalización de transmisión de bytes" y requiere que el cliente y el servidor no estén en la misma máquina. Si se usa este modo, solo cuando la función pasa. la red La computadora remota solo puede regresar de manera efectiva cuando los datos se escriben exitosamente en el búfer de tubería. Si no se usa este modo, el sistema ejecutará el modo predeterminado para mejorar la eficiencia de la red. debe usar FILE-CREATE-.PIPE-INSTANCE para acceder al objeto de canalización con nombre. Una vez establecida la nueva canalización con nombre, la lista de control de acceso del parámetro de seguridad define los permisos para acceder a la canalización con nombre. Todas las instancias de canalización con nombre deben utilizar una canalización unificada. método de transmisión, modo de canalización y otros parámetros. Si el final no se inicia, el servidor de canalización no puede realizar operaciones de lectura de bloqueo; de lo contrario, se producirá un estado de bloqueo inactivo. Cuando se cierre el último identificador de la última instancia de canalización nombrada, la canalización nombrada debería. ser eliminado.