TODOPIC
Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: pablolode en 16 de Octubre de 2011, 21:23:49
-
alguno conoce algo de este lenguaje??
existen las interupcines en este lenguaje??
en mi trabajo tiene un sof en .NET el cual monitorea a varios microcontroladores a traves de puertos TCP ,y segun el programador no puede monitoreallos a traves de interupciones o escuchar sus puertos si llega un msj, y el problema surge cuando pierde la comunicacion con alguno de los micros,no se cuelga ,pero tarda demasiado en pollear a los otros dispocitivos porque pierde mucho tiempo esperando la respuesta del que por alguna razon no responde, y esto demora mucho todo el sistema.
Segun el programador no puede solamente "escuchar" ese puerto,por eso lo tiene que hacer polling a cada uno.
este sera asi realmente en este lenguaje??? ,saludos.
-
no puedes cambiar el timeout?? En muchas funciones de comunicacion he visto que se puede cambiar el timeout para que espere mas o menos tiempo los datos.
-
creo que si se podria cambiar el timeout,(no soy yo el que programa),le podria sugerir que la de menos tiempo para recibir la respuesta ,y siga consultando a los otros nodos...
-
es que no entiendo como es eso de atender a uno y si no contesta se va a otro.
Que yo sepa la programacion .NET se basa en eventos, el TCP nunca lo he usado en .NET pero si en viejo C++ y recuerdo que cuando recibia un dato este creaba un evento de ventana y se procesaba en ese momento.
Si lo que haces es un PING y esperas un PONG es tan simple como mandar a todos pings, poner un timer en el programa, y si X pic no responde en X tiempo se le da por desconectado.
-
es que no entiendo como es eso de atender a uno y si no contesta se va a otro.
bueno eso lo supongo yo, similar a una comunicacion rs485.
eso es justamente lo que falta,si no responde por x tiempo que lo desconecte, es algo muy simple creo .voy a apuntar por ese lado¡¡¡
-
Es cierto lo que dice, que tiene que manejarlo por polling. Crear un TCPCliente con la IP:PORT, tratar de establecer comunicación y esperar. Puede cambiar el timeout seguramente.
Saludos!
-
ya me quedo mas claro¡¡ la clave esta en darle un cierto tiempo y desconectar si no contesta,gracias gente¡¡
-
Podrías poner cada petición en un hilo separado y sincronizar las respuestas por algún mecanismo thread-safe.
saludos