Estoy viendo un proyecto que requerirá la comunicación entre procesos entre una aplicación heredada de Windows utilizando canalizaciones con nombre, y un nuevo servicio que se ejecuta en un servidor Linux. La aplicación de Windows no se puede cambiar. ¿Alguien sabe si hay una biblioteca Linux disponible que admita Windows named pipes? O mejor aún, ¿alguien puede recomendar una biblioteca que hayan utilizado para este propósito?Compatibilidad con tuberías con nombre de Windows en Linux
Respuesta
Las tuberías con nombre de Windows y Linux son animales diferentes. Si existe una solución de interoperabilidad, va a formar parte de una población muy pequeña de usuarios.
Puede que sea mejor escribir un proxy en el lado de Windows para mapear entre Named Pipe y socket, y conectarlo a un socket en el extremo de Linux. Esto le proporciona una interfaz de red útil en el lado de Linux en el futuro, y elimina lo que podría ser un mundo de interferencia de Canalizado afectado por la imagen.
Si estuviera haciendo esto, trataría de producir un proxy de paso simple en C# (código administrado) como una prueba de concepto. Siempre se puede convertir a código nativo (Win32/C++) si el rendimiento no se mide. Existe alguna muestra del código C# here que podría ser una referencia útil.
Aquí está background on the nuances of Windows vs Linux named pipes.
Gracias. la idea de escribir un proxy en el lado de Windows se me había ocurrido, pero encuentro resistencia en la idea de instalar algo en el servidor de Windows ... – MichaelB76
@ MichaelB76 - qué frustrante ... con suerte una presentación bien argumentada de los riesgos y costos al tratar de hacer la interoperabilidad NP pueden cambiar el argumento para usted. ¿Cuál es el sistema operativo de Windows? Una máquina, o muchas? –
Apuesto a que Samba/Winbind contiene un código muy relevante. Sin embargo, no estoy seguro de qué tan reutilizable sea.
Creo que la suite Samba contiene algo útil; no estoy seguro de cómo usarlo. Algunas de las herramientas de samba deben conectarse internamente a las tuberías con nombre de NT. – MarkR
Gracias, pensamiento interesante. – MichaelB76
- 1. WatiN Compatibilidad con Windows
- 2. Prevenir el conflicto de tuberías con nombre
- 3. ¿Qué son las tuberías con nombre?
- 4. Windows API Codepack Compatibilidad con versiones anteriores en Windows XP
- 5. Tuberías de Windows en modo binario
- 6. ¿Es posible descubrir canalizaciones con nombre en Windows?
- 7. Compatibilidad con HTML 5 en el navegador Windows Phone 7
- 8. Solo archivo de nombre con extensión en Windows
- 9. Comando de ejecución de hormigas con tuberías
- 10. Compatibilidad con GIF con Android
- 11. ¿Cómo manejar archivos comprometidos con Git en Linux con nombres de archivo de Windows inválidos?
- 12. .NET 4.5 RC Framework CLR - Compatibilidad con Windows XP
- 13. Tuberías de correo electrónico con script php
- 14. Datos de tuberías entre hilos con Java
- 15. Compatibilidad con AOP en Delphi
- 16. Ejemplo de uso de canalizaciones con nombre en Linux Bash
- 17. Cómo utilizar tee en fd's en lugar de tuberías con nombre
- 18. Oracle en Linux con suplantación de autenticación de Windows ASP.NET
- 19. compatibilidad con normas g ++
- 20. Compatibilidad con IronPython 3
- 21. ¿Hay alguna manera de olfatear el tráfico de pipas con nombre en Windows?
- 22. ¿Cómo abrir una tubería con nombre de Windows desde Java?
- 23. Compatibilidad con Systemtap PPC32
- 24. compatibilidad binaria entre las distribuciones de Linux
- 25. Compatibilidad con versiones anteriores en .NET con BinaryFormatter
- 26. ¿Cuáles son las diferencias entre las tuberías en Windows y Linux?
- 27. Compatibilidad con varios idiomas En C#
- 28. ¿Cómo puedo abrir tuberías con estilo OO?
- 29. ¿Qué base de datos incrustada tiene máxima compatibilidad con SQL y compatibilidad con concurrencia?
- 30. Compatibilidad con propiedades de tipo en g ++
Una tubería es un sistema de comunicación local, no se expande a redes ... Entonces, ¿cómo debería un sistema Linux tener acceso a una tubería en un sistema Windows, que por definición debe ser un sistema diferente (incluso una VM)? ¿O quieres saber cómo escribir un proxy o algo así? – DarkDust
@DarkDust: las tuberías con nombre de Windows se exportan a través del espacio de nombre de la red. Puede abrir uno desde otra máquina con los atributos de seguridad correctos y anteponiendo el nombre de la tubería con el nombre WINS. –
Los conductos con nombre de Windows funcionan de forma diferente a los de Linux estándar y funcionan en una red. Pregunto si alguien ha escrito una biblioteca en Linux para admitir Windows named pipes. – MichaelB76