Это все равно что пытаться потушить пожар после его начала, когда вы должны пытаться предотвратить пожар в первую очередь.
Поскольку вы являетесь провозглашенным автором и server.exe, и client.exe, вместо того, чтобы пытаться перехватить stdout / stderr и перенаправить его в сокет в этот момент, вам следует перестроить клиент так, чтобы вы перехватывает текст, предназначенный для стандартного вывода, ДО того, как он перейдет на стандартный вывод.
В этот момент вы можете отправить выходной текст ОБА и стандартный сокет, если хотите.
РЕДАКТИРОВАТЬ: игнорировать верхнюю половину, поскольку вы позже сказали, что вы НЕ автор клиента.
Хорошо, вторая попытка:
Поскольку вы порождаете «настоящего» клиента, используя «поддельный» клиент, почему бы вам просто не перехватить стандартный вывод «реального» клиента на стандартный ввод «поддельного» клиента (открыть канал). Затем «поддельный» клиент отправляет данные обратно в сокет.