Fully fonctionnal version without sleeps, execpt those usefull to see the results after the 'dumb routine'. Non-blocking receiving and sending are still needed.