/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

¿Cómo diferenciar si un cliente funciona con UDP o TCP?

 
      Índice del Foro elrincondelc.com -> Programación en Servidores
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Triquiñuelas



Registrado: 12 Dic 2010
Mensajes: 1

MensajePublicado: 12/12/2010 8:24 am
Título: ¿Cómo diferenciar si un cliente funciona con UDP o TCP?

Buenas a todos. Estoy haciendo un par de programas (servidor y cliente) en Ubuntu, que se hablen entre sí y ambos puedan tener abiertas varias conexiones. El caso es que quiero que el servidor pueda tratar tanto conexiones que le lleguen usando UDP como TCP por el mismo puerto. Pero no sé cómo hacer que el servidor, cuando le llega una nueva conexión, sepa si va por UDP o TCP y que dependiendo de si es un protocolo u otro, los trate de diferente forma.

Pensaba que con crear el socket y decirle qué protocolo debe utilizar, valdría para diferenciar las conexiones, y que en caso de no corresponderse, no se crearía el socket correctamente, pero veo que no. ¿De qué manera diferencio si lo que me llega es UDP o TCP antes de tratar la información que me llegue?

Muchas gracias de antemano.
Volver arriba
Sorancio



Registrado: 29 May 2009
Mensajes: 1157
Ubicación: España

MensajePublicado: 12/12/2010 10:19 am
Título:

Una manera "fácil" sería recoger de forma cruda el paquete recibido y analizarlo. Hay que tener en cuenta también que UDP es un protocolo "connection-less". Esto quiere decir que no hay una conexión constante, sólo cuándo se envían o recibes paquetes.
Volver arriba
cheroky



Registrado: 22 Sep 2005
Mensajes: 2556
Ubicación: Valladolid (España)

MensajePublicado: 12/12/2010 7:42 pm
Título:

Hola.


No entiendo el problema, necesitas dos sockets (LISTENING) para cada protocolo y un mismo puerto, así que estan bien diferenciados por los descriptores que (acept) valida para conexiones TCP. Más que un problema lógico parece ser de diseño, máxime teniendo en cuenta que con una conexión cliente/servidor con datagramas de usuario necesitas validar cada ventana de datos y el resultado final es cuasi-simular TCP con UDP.

No obstante sin conocer bien lo que pretendes puedes implementar un protocolo de alto nivel con unos pocos bytes por paquete, ID de cliente, etc.



·?0ƒ·
_________________
La cuestión no es si hay vida inteligente en otros planetas lejanos. La cuestión es si hay vida inteligente aquí.
Volver arriba
      Índice del Foro elrincondelc.com -> Programación en Servidores
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com