Тут видимо самое простое решение это так называемое "правило правой руки".
Пожалуй не то что бы простое, но ИМХО верное (по крайней мере мне в голову ничего другого не лезет)
А вот то что оно не работает очень странно, может в реализации какие-то огрехи ?
Разрабатываю новый сетевой протокол VariableLengthAdvancedDataSendingOverNetwork
Что он будет делать и зачем нужен не знаю, разработал пока только название.