Duda socket TCP y uso de cartilla al hacer send

Duda socket TCP y uso de cartilla al hacer send

de Maria Victoria Armand Ugon De Souza -
Número de respuestas: 1

Buenas,


Nos surgio una duda al momento de enviar datos por un socket TCP.


Queremos saber si para el envio de datos alcanza con setear 

el socket del cliente en bloqueante y hacer el send:


client.settimeout(-1)// setear socket como bloqueante

client.send(data)


es mejor usar socket no bloqueante:

while remain !=''

remain, err = client.send(data);

?

Gracias

En respuesta a Maria Victoria Armand Ugon De Souza

Re: Duda socket TCP y uso de cartilla al hacer send

de Jorge Visca -

Depende de lo que quieran lograr y de la estructura de su programa.

En primer lugar observen que el resultado de ambos fragmentos de código es el mismo: entran, quedan ahí hasta que envían todo, y luego siguen. En ese sentido son intercambiables, y tiene sentido usar la que parezca más simple.

La segunda opción les agrega la posibilidad de hacer algo periódicamente mientras están enviando, agregando código adentro del while. O tal vez ya tengan un bucle donde están haciendo algo, p.ej. leyendo, y de paso van enviando lo que pueden.

En resumen, si lo único que quieren hacer es enviar todo y no hacer nada más, opción A. Si además de escribir tiene que hacer otra cosa, opción B.