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