Servicios Windows

13/04/2007 - 17:58 por Javito | Informe spam
Hola a todos, he hecho un Servicio Windows que me permite enviarle datos a
un determinado puerto y el servicio me almacena lo recibido en un Archivo
sin problemas, pero el problema me surge cuando por el mismo canal le quiero
devolver al Cliente el Mensaje de "Datos recibidos correctamente" , detallo
un poco la secuencia.
- En el servidor hay un objeto TCPListener que escucha en un puerto
- Cuando llega la llamada crea un objeto TCPClient que es el cliente al
que atiende,
- para la comunicación crea un NetworkStreamer
- con este Streamer captura los datos y los manda a una función para
archivo

Pero ahora debe utilizar este mismo Network Streamer(STR) para enviar la
respuesta y procede a hacer un STR.Write("Datos Correctos") y en la parte
cliente el mismo canal STR hace un STR.Read y hasta aqui llegamos el cliente
se queda esperando los datos y ya no sale de ahi, es que hace falta algo
intermedio que sincronice "ahora envio ponte a escuchar" o algo asi

un saludo
 

Leer las respuestas

#1 [Juanjo]
14/04/2007 - 11:22 | Informe spam
Yo no he hecho un servicio, pero he hecho un programa que hace envia y
recibe
ficheros siguiendo este ejemplo:

http://www.geekpedia.com/tutorial18...ernet.html

que creo que hace "algo parecido". Mi problema es que el que enviaba iba
mucho mas rapido
que el que recibia y se "perdia la sincronización", por lo que mas o menos
hacia:

[Cliente]
while (hay_datos_ para_enviar)
{
datos=leedatos();
STR.Write("Datos");
STR.Read("unbit");
}
[Servidor]
while (hay_datos_ para_recibir)
{
STR.Read("Datos");
escribeDatos("Datos");
STR.Write("unbit");
}

Y funciona bien. Tambien puedes comprobar que lo que recibe un equipo y es
lo mismo que lo
que recibe el otro.

Lo que yo no consegui hacer fue enviar y recibir un fichero en la misma
conexion, me pasaba lo que
a ti, y en el cliente lo solucione cerrando y abriendo la conexion.

Espera te sirva. Un saludo.

"Javito" escribió en el mensaje
news:
Hola a todos, he hecho un Servicio Windows que me permite enviarle datos a
un determinado puerto y el servicio me almacena lo recibido en un Archivo
sin problemas, pero el problema me surge cuando por el mismo canal le
quiero devolver al Cliente el Mensaje de "Datos recibidos correctamente" ,
detallo un poco la secuencia.
- En el servidor hay un objeto TCPListener que escucha en un puerto
- Cuando llega la llamada crea un objeto TCPClient que es el cliente al
que atiende,
- para la comunicación crea un NetworkStreamer
- con este Streamer captura los datos y los manda a una función para
archivo

Pero ahora debe utilizar este mismo Network Streamer(STR) para enviar la
respuesta y procede a hacer un STR.Write("Datos Correctos") y en la parte
cliente el mismo canal STR hace un STR.Read y hasta aqui llegamos el
cliente se queda esperando los datos y ya no sale de ahi, es que hace
falta algo intermedio que sincronice "ahora envio ponte a escuchar" o algo
asi

un saludo



Preguntas similares