По какой причине вы хотите сделать это в первую очередь? Для этого уже есть множество решений, таких как TightVNC (который также включает в себя java-клиент, если вы этого хотите).
Если вы действительно хотите выполнить это упражнение самостоятельно, основная задача, вероятно, должна заключаться в том, чтобы обнаруживать и отправлять только обновленные области экрана и правильно сжимать отправляемые данные.