Hai messo un bel pò di codice...
Cerca di essere il più conciso possibile altrimenti dubito che qualcuno ti risponderà (capitato anche a me).

P.S. : Non è che per caso stai facendo Reti di Calcolatori all'Unical?