[SOLUCIONADO] Sockets de alto rendimiento

Iniciado por Vuls, Enero 29, 2022, 04:26:29 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 29, 2022, 04:26:29 PM Ultima modificación: Febrero 11, 2022, 01:47:19 AM por AXCESS
Hola deseo crear una aplicacion cliente/servidor desde cero, y hacer que esta tenga el mejor rendimiento posible.
Que lecturas podrian recomendarme gracias.

Hola Vuls

Criterio emitido con prisas y no menos cansancio:

Existen muchos open source muy buenos y ya probados en el tiempo. Esta opción es mejor que crear algo desde cero; "que ya está inventado" y disponible al uso de manera gratis:

Escribir en el buscador:

server/client open source
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola Vuls

Criterio emitido con prisas y no menos cansancio:

Existen muchos open source muy buenos y ya probados en el tiempo. Esta opción es mejor que crear algo desde cero; "que ya está inventado" y disponible al uso de manera gratis:

Escribir en el buscador:

server/client open source

Entiendo, eso pero ese no es mi punto, mi punto es hacerlo para mi desde cero para comprender la totalidad de su funcionamineto.
Necesito que se puedan transferir KB, MB, GB...  de manera fragmentada, y pueda soportar cada paquete entrante de manera sincronica y el programa no colapse

Enero 30, 2022, 12:18:39 PM #3 Ultima modificación: Febrero 09, 2022, 06:43:15 PM por DtxdF
@Vuls

Debes indagar sobre los sockets de berkeley y winsocks, al menos para tener una idea de cómo se hacen en cada sistema.

En el caso de winsocks, leyendo el portal de Microsoft, y para los sockets de berkeley, hay libros y fuentes interesantes:

*.- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
*.- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
*.- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No te diré libros, porque mirando bien uno de los enlaces que te pasé, puedes conseguir alguno.

Claro, que leyendo los archivos de encabezado y los manpage suelen ayudar también.

Los sockets son una forma de usar los servicios que te proveen las capas más bajas de la capa de sesión en el modelo OSI, pero son abstractos, así que algunas veces será necesario por lo menos saber un poco sobre la capa 4 y 3, al menos en conceptos.

Actualizado:

Por cierto, veo que en el título refleja que deseas que sea de alto rendimiento, pues esto varía en muchísimas cosas. No voy a especificar cada detalle porque no valdría la pena, pero mayormente cuando se desea un alto rendimiento, con varias conexiones, de forma simultánea, y enviando varios datos en concurrencia, pues se deberá usar la asincronía o llamadas al sistema muy interesantes. Nginx tiene un pequeño hilo de referencia:

*.- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

Si tenés mucha experiencia previa con conexiones de alto rendimiento creo que DtxdF te indicó en el camino correcto. Solo agregaría que miraras named pipes y unix domain sockets. Lamentablemente no tengo mucha experiencia en el campo por lo que no te puedo recomendar ninguna lectura.
Por el otro lado, si no tenés tanta experiencia en el tema, te recomendaría que juegues con los paquetes .net y .nio de Java. Ambos paquetes te proveen con un montón de herramientas para implementar tus propios sockets sobre TCP y están excelentemente documentados.
Cualquiera sea tu caso te deseo mucha suerte con este proyecto.