Мне нужно синхронизировать два разных потока данных. Я назову их стрем А и Б в следующем. В нулевое время оба потока начинаются с отправителя. Но поток A испытывает задержку в начале передачи (в диапазоне от 1 с до 10 с) относительно потока B. В приемнике мне нужно синхронизировать потоки, так что мне нужно (Python, C, C++, Java) ), программа, открывающая сокет для получения B (с заданным IP: портом), буферизует данные (например, 10сек), а затем начинает: 1) читать данные из B и копировать их в очередь. 2) читать данные с начала очереди и отправлять их на другой порт ip:. Таким образом, в последнем порту я могу читать их, синхронизированные с A. Я не знаю, может ли netcat или другие инструменты сделать это с некоторыми опциями, или если уже есть программы (под Windows 10), которые можно использовать сделать это. В конце концов я могу написать код, но мне действительно нравится знать некоторые направления, для решения. Благодарю.

1 ответ1

1

Вы не можете "задерживать" потоки TCP, в частности, если на пути много промежуточных блоков с буферизацией буфера. Любая попытка сделать это рано или поздно окажется в нестабильном состоянии.

Если вам нужны сетевые потоки, которые необходимо синхронизировать, посмотрите соответствующие протоколы, например, RTP.

Кроме того, это очень похоже на вопрос XY: вы думаете, что вам нужно "задержать потоки TCP" (Y), но вы не сказали нам, какие данные вы передаете, каким образом их нужно синхронизировать и т.д. . (X)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .