Re: Sockets Locales Mi Pesadilla
Pero es que hacerlos así plantea varios problemas (incluído el de seguridad).
Cuando haces sockets unix lo que haces es transmitir información entre procesos. Por ejemplo tu puedes tener un proceso que corre bajo root y que está esperando. Cuando le envias una información entonces actúa. Ese por ejemplo puede ser un procedimiento para que ese proceso haga un apt y cosas así. Hay muchos ejemplos en linux. Uno de ellos por ejemplo es syslog. Es un proceso que está a la escucha y cuando un proceso le envía algo lo loguea. En unix y linux se utilizan muchísimo y abren unas posibilidades terribles al poder conectar procesos distintos de usuarios distintos con absoluta seguridad y en tiempo real.
Porque esos ficheros tienen un bloqueo especial, no se pueden leer como los demás ficheros ni se puede acceder a su contenido así como así. Es una forma muy segura y robusta de comunicar procesos.
Pero no hay manera.
He creado una pequeña aplicación para ver el problema. No descarto que acabe subiendolo a benoit porque a mi me da que algo está mal ahí pero como no lo sé antes hay que investigarlo.
Creo un proyecto en el que todo el codigo es este
Es decir abre un socket server y un socket cliente y luego intenta conectarlos. Imprime el status de uno y otro.
La clase SLocalSrv es una clase para levantar un server socket. Solo tiene este código
Con solo instanciarla se pone a la escucha en Path
La clase SLocalCli levanta un socket cliente y lo intenta conectar a un socker a la escucha. Su código es este
Deberían quedar conectados pero no. El server se pone a la escucha, (net.active) pero el local se pone a resolver el string como si fuera un host (net.searching) y luego resuelve que host not found (net.hostnotfound). No encuentro la forma de que entienda que no es un host sino un path y que no hay que resolverlo sino que ya está al alcance.
A mi me parece que es que no está bien, pero antes de avisar a benoit hay que mirarlo con cuidado.