Innanzitutto ti ringrazio per l'attenzione, poi ti vorrei fare due domande
1. A che serve quella funzione select? O meglio che cosa fa?
2. Per l'invio di un byte 0 intendi un "\0" ? E in questo caso il client dovrà controllare se il byte ricevuto è \0? E facendo cosi non sono obbligato a leggere comunque un byte alla volta?