Hola, el ultimo loop, while result >=0, no tiene un problema? Osea, nunca sale del loop ya que la letra dice que la operacion leerPCT retorna 0 en caso de que no hayan datos para leer, y en ningun lado se setea result en -1 o algo para lograr salir del loop, por lo que nunca se cierra la conexion.
Saldrías del loop cuando el otro lado cierra la conexión, pues ahí el leerPCT devuelve -1.
Saludos,
Carolina