Posso obter uma conexão limpa de 8 bits com 'socat'?

2

Esta questão é principalmente sobre "socat", mas aqui vai um resumo:

Eu estou tentando - por razões principalmente relacionadas à nostalgia - escrever um driver de modem virtual para uso com o VirtualBox. Ele deve ouvir o soquete que o VirtualBox conecta ao convidado virtual e emular (a) um conjunto de comandos Hayes padrão e (b) permitir que um se conecte a sistemas remotos usando "atd algum.host.name". Principalmente funciona, mas me deparo com problemas com transferências de dados. Eu assumo que o problema é meu, porque raramente tenho a chance de me envolver com comunicação multicanal, selecionar loops e coisas do tipo ...

... então pensei em prototipar minha solução usando o comando "socat", assim:

socat UNIX-CONNECT:/tmp/vbox.port EXEC:"telnet -E8 some.remote.host"

Isso funciona, mais ou menos como a minha solução - a digitação básica básica parece boa, mas tente uma transferência de arquivos e ela simplesmente cai. Eu também tentei isso, apenas no caso de haver algum tipo de disciplina de linha no caminho:

socat UNIX-CONNECT:/tmp/vbox.port EXEC:"telnet -E8 some.remote.host",pty,raw,cs8

Isso não funcionou melhor.

Eu estou querendo saber se alguém aqui tem pensamentos sobre como resolver isso. O problema não é com o telnet; usar -E8 fornece um caminho limpo de 8 bits que funciona bem por si só (por exemplo, quando não está envolvido nesse tipo de proxy ptyd).

Isso obviamente não é um problema crítico, mas eu espero que alguém encontre algo pelo menos moderadamente interessante.

    
por larsks 11.03.2011 / 21:33

1 resposta

0

Embora você diga que o telnet não é o culpado, testaria tirá-lo.

Já experimentou o seguinte?

socat UNIX-CONNECT:/tmp/vbox.port tcp:some.remote.host:23

Isso deve ser limpo por 8 bits por si só.

    
por 12.03.2011 / 13:17