Visual Basic Foro

Programación => Visual Basic .NET / C# => Mensaje iniciado por: Waldo en Octubre 29, 2015, 04:42:14 pm

Título: Socket async
Publicado por: Waldo 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.
Título: Re:Socket async
Publicado por: jose.emanuel.vega 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

Título: Re:Socket async
Publicado por: Waldo 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