Beh, prima di tutto il sia il client che il server devono essere in grado di 'codificare' e 'decodificare' il messaggio, quindi entrambi dovrebbero usare , nel tuo caso, la tua implementazione del CRC16. Fai così: prima di mandare un messaggio, lo codifichi col CRC16, poi lo mandi, quando viene poi ricevuto dall'altro utente, quest' ultimo lo decodifca per vedere il messaggio in chiaro. Dato che nella trasmissione potrebbero esserci degli errori, devi fare in modo che client e server si 'accordino' sulla correttezza dei dati.