A ver si me podéis echar una mano, quiero hacer un cliente que le haga una serie de peticiones al servidor y este las conteste y a la vez el cliente este mandando datos al servidor (un fichero por ejemplo). ¿Puedo hacer esto con un sólo socket? en principio tengo pensado llevar cada labor con un thread distinto y tengo mis dudas. ¿O tendría que crear un socket para cada caso?, ¿se podrían enviar los distintos datos por el mismo socket?
No sé si me explico bien, por poner un ejemplo: me pongo a subir un fichero al servidor en un thread (sería algo así como en segundo plano) y el cliente a la vez haría una serie de consultas al servidor y que este me envíe las respuestas (esto iría en otro thread). Lo que yo pregunto es si puedo multiplexar por el mismo socket esto y también, mientras siga subiendo el fichero que pueda leer las respuestas del servidor. El servidor en principio usaría un único thread. Yo creo que debería usar dos sockets y comprobar con select() en el servidor si tengo datos en uno y otro y actuar en consecuencia.