socket servidor programa hilos hacer fuente crear con como codigo cliente chats delphi tcp udp indy broadcasting

delphi - servidor - crear chat con sockets



¿Debería temer usar UDP para hacer una conversación de difusión cliente/servidor? (1)

¡Decidí usarlos a los dos!

Caso de uso simple:

Para comunicarse con TCP prococol, debe establecer una conexión que solo puede tener si conoce IP y Port en ambos extremos.

Si no tiene esa información cuando carga su Aplicación, entonces usa el UDP para Transmitir su dirección IP y su intención de encontrar el / a Servidor. Puede intentar aproximadamente 5 veces antes de plantearle al usuario un error que le indique que no encontró el Servidor o que el Servidor no está funcionando.

El envío de ese mensaje en UDP llegará (una vez u otra) al oído UDP del Servidor, que ahora conocerá la IP de la IP solitaria del Cliente y ahora comenzará una conexión adecuada a través de TCP para leerla hablar sobre los mensajes críticos de la Solicitud.

¿Qué piensas de ese enfoque?

Pasé los últimos dos días leyendo cada pregunta y respuesta de StackOverflow (y Google, por supuesto) sobre el TCP Indy TCP y UDP para decidir cuál debo usar en mi método de comunicación entre mi aplicación de usuario y mi servicio de Windows.

Por lo que vi hasta ahora, UDP es el más fácil y el único que pude trabajar para recibir mensajes de TidUDPClient de TidUDPClient (aún no testifiqué la respuesta). Y también noté que TCP es un poco más complicado con su ciclo de subprocesos.

Pero como en todas partes me dicen que UDP no es confiable, UDP no es confiable ... empiezo a preguntarme si no es mejor usar TCP todos modos.

Mi aplicación de usuario se ejecutará en muchas máquinas, y el servicio se ejecutará en una de ellas, compartiendo una dirección IP con un cliente o en una máquina dedicada, dependiendo de los fondos de mi cliente. Entonces, ¿realmente debería preocuparme las posibilidades de pérdida de datos UDP ?

Necesito capacidades de transmisión para que mi servidor avise a todos los clientes a la vez sobre las actualizaciones de la Aplicación, y por supuesto, si mi Aplicación de Cliente no sabe en qué IP el Servidor / Servidor, enviará una llamada de difusión para saber dónde está el servidor . ¿Eso es aplicable a TCP ?

Los mensajes que envío son solicitudes de confirmación de acceso de los usuarios, privilegios de los usuarios y actualizaciones de archivos ejecutables de la aplicación, ya que la aplicación principal no puede actualizarse. Esos mensajes están encriptados como a continuación, y pueden apostar más grandes a veces.

e86c6234bf117b97d6d4a0c5c317bbc75a3282dfd34b95446fc6e26d46239327f2f1db352b2f796e95dccd9f99403adf5eda7ba8