Столкнулся с проблемой связанной с тем, что программный цикл может изменить переменные прям во время сетевой передачи, так что часть считанных переменных будет иметь значения прошлого цикла, часть - следующего.
Как бы их забуферизивать, чтобы передавать всегда цельное состояние?

Пока не нашел ничего лучше, чем
1) менять сетевые переменные раз в секунду
2) передавать специальный контрольный бит, который равен нулю в течении четверти секунды до и после смены состояния.
3) данные принятые с контрольным битом равным нулю отбрасываются.