¿Cómo se manejan varios clientes en TCP (basado en Java)?

Siento que estos podrían ser temas básicos, pero no pude encontrarlos respondidos sucintamente en otra parte.

Cuando construyo un servidor TCP, entiendo que cada cliente que se conecta tiene que ser alimentado a su propio puerto para mantener una conectividad sensible (por ejemplo, para saber que este mensaje proviene de este cliente).

¿Cómo se configura esto? Supongo que tendrías una Lista y un Enchufe de 'punto de entrada' dedicado al que la gente se conecta. El Socket de conexión encontraría un puerto libre, respondería con el número de puerto y configuraría un nuevo Socket escuchando en ese puerto. ¿Suena esto bien?

Si este es el caso, me parece que la entrada Socket necesitaría bloquearse mientras escucha las conexiones entrantes. ¿Esta lectura de bloqueo se realiza en un hilo separado?

Pregunta secundaria adicional: Realmente solo necesito pasar un mensaje simple para un juego básico de Java con el que quiero experimentar. Cosas como Netty parecen un mazo para esta nuez particular de una aplicación. ¿Es mejor escribir algo agradable y ligero con la biblioteca estándar de Java?

Respuesta 1

Me gustaría implementar un sistema de devoluciones de llamada que tenga este aspecto (pseudocódigo): final Listener listener = ListenerCtrl.addListener (new Listener () {void onNotify (String response) {...

Simplemente diga, tengo muchos puntos en forma de (x, y). Quiero poner esos puntos en una tabla hash con el punto como clave. ¿Cómo debo implementar el método hashCode () de la clase Point? tomando ...

Tengo una aplicación web que consiste en un servicio web con dos operaciones: createA y createB. Se registra un controlador para el punto final. Este controlador abre una sesión e inicia una transacción cuando ...

Tengo una función de Oracle my_func () que devuelve la tabla de tipo de usuario. Ahora puedo seleccionar de esta manera: SELECCIONAR * DE LA TABLA (my_func (3)); Pero mi proyecto no debería depender de la base de datos, y yo ...