Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Redes (https://www.clubdelphi.com/foros/forumdisplay.php?f=37)
-   -   Cliente Udp (https://www.clubdelphi.com/foros/showthread.php?t=97104)

LIGERO 07-12-2024 12:20:58

Cliente Udp
 
2 Archivos Adjunto(s)
Buenas.
Estoy intentando conectarme con un dispositivo (No PC) que recibe una trama y contesta el estado en el que está, cambiar parámetros de configuración, etc.
Le paso una trama para que me diga que está ahí y me devuelva como se llama. Perfecto.
Desde Wireshark veo como el dispositivo me contesta.
Cada vez que inicio mi programa, este envía por un puerto de origen distinto, por lo que el dispositivo me contesta a ese puerto.
Parametrizo mi programa para recibir los datos por ese puerto, pero no lo recibo.
¿Sería posible que cuando le envío desde UDPClient, poder marcar el puerto de origen y el final?
¿Por ejemplo siempre poner como puerto de origen el 9300 y como destino 9200?
De hecho el software propio de la máquina lo hace así, de forma que la máquina contesta a ese puerto.
Si hago la prueba con 2 PC, no hay problema y recibo perfectamente.

Saludos y muchas gracias.

Archivo Adjunto 4234

Archivo Adjunto 4235

navbuoy 08-12-2024 12:38:24

No se muy bien pero creo que para que se comuniquen tienen que usar el mismo puerto fijo los 2 el mismo, tanto el cliente como el server

ese puerto deberias poder ajustarlo en el componente UDPClient y en el UDPServer

El server tendria que tener el codigo preparado para responer a ciertos comandos enviados desde el cliente o bien enviarle el mismo comandos establecidos en el cliente si por ejemplo intentas cambiar cosas en su configuracion o lo que sea si es cualquier clase de aparato que "recibe" ordenes

si como dices el responde al puerto por donde recibe los comandos pues fijar un puerto dado en el componente

LIGERO 09-12-2024 14:50:56

Gracias.
Ya lo he solucionado.
Para indicar el puerto por donde quiero que me conteste la máquina, pongo la propiedad del IDUDPClient.BoundPort := 9300
De esta forma sé que la máquina me va a contestar por ese puerto.
Luego decirle al IDUDPServer que el puerto es este y sin problemas.
Eso si. Después de enviar los datos hay que desactivar el cliente para que no entre en conflictos con el servidor.


La franja horaria es GMT +2. Ahora son las 15:25:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi