Autor Tema: Socket async  (Leído 1666 veces)

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

Waldo

  • Gigabyte
  • ****
  • Mensajes: 264
  • Reputación: +22/-0
    • Ver Perfil
Socket async
« en: Octubre 29, 2015, 04:42:14 pm »
Hola gente, estoy iniciándome en el mundo de .net y necesito hacer un servidor tcp multiclient ( pequeña gran tarea  ;D )

Para arrancar a jugar, ya me hice un cliente y un servidor, el servidor simple escucha.
Hasta ahi todo bien.

Ahora pasé al server multiclient, encontré un par de ejemplos, tengo algo funcionando.
El servidor es tipo multithread., para aceptar conexiones,  recibir y enviar lo hace con metodos Async.

La duda es si para enviar, digamos un ACK desde el server, lo puedo hacer con un simple Socket.Send (que seria sincronico o bloqueante) o estoy obligado a hacer el Send con un .BeginSend y .EndSend

De movida probe con el .Send y funciona, pero tengo miedo que si desp tengo 50 cliente simultaneos conectados, si hago un simple .Send me bloquee a los otros clientes, o algo asi.

jose.emanuel.vega

  • Bit
  • Mensajes: 4
  • Reputación: +1/-0
    • Ver Perfil
Re:Socket async
« Respuesta #1 en: Febrero 11, 2016, 07:51:47 am »
Hola waldo, ya pasó tiempo de tu mensaje.
Espero te sirva el dato.

La idea sería crear un hilo por cada cliente conectado y así poder realizar un send desde ese hilo. Si bien es bloqueante, sólo bloquea el hilo en el que estás trabajando, ahora si vas a hacer un gran envío estaría bueno que implementes una suerte de ack desde el cliente y poder enviarlos asíncronos a los datos.

Espero me pueda hacer entender.


Enviado desde mi XT1032 mediante Tapatalk


Waldo

  • Gigabyte
  • ****
  • Mensajes: 264
  • Reputación: +22/-0
    • Ver Perfil
Re:Socket async
« Respuesta #2 en: Febrero 11, 2016, 09:06:31 am »
Hola Jose, gracias x tu Rta. Es verdad ya paso un tiempo. Buscando diferentes soluciones habia llegado al multithread que comentas, y me pareció lo mas prolijo. Sin tantas vueltas como el async. Gracias

Enviado desde mi XT1068