Hola a todos. Estoy haciendo una aplicación simple para compartir archivos. En el modelo que estoy trabajando, por cada archivo que quiero enviar hacia alguna persona creo un TcpClient y un TcpListener. Pero esto no me gusta porque ocupo muchos puertos y no se si será lo más optimo.
El funcionamiento es el siguiente:
- Un usuario selecciona el archivo que quiere descargar
- Se busca en el servidor remoto a quien corresponde ese archivo, y si el usuario a quien corresponde el mismo está conectado, entonces se inicia el proceso de transferencia
- Este proceso se inicia de la siguiente manera:
- En el usuario que solicitó la descarga del archivo se crea un TcpClient para comenzar la descarga
- En el usuario a quien se le solicitó la descarga de su archivo se crea un TcpListener para recibir la conexión del otro usuario
- Una vez que la conexión está establecida entre pares, comienza la transferencia
Entonces, por cada transferencia tenemos un TcpClient y un Tcplistener (en el usuario cliente y en el usuario servidor, respectivamente).
¿Qué sugerencias podrían hacer al modelo?. La verdad es que hace mucho no programo este tipo de aplicaciones y sinceramente no sé si está será la forma óptima de hacerlo.
Se agradece cualquier sugerencia, ayuda o referencia.
Saludos.