Eu tentei as duas versões principais do netcat: GNU e BSD. (a minha é a versão BSD).
Na versão GNU, o comando $ nc -l -p 12345 funciona bem, mas com o BSD, a opção -l (listen) não pode ser usada em conjunto com -p (porta local).
Eu não entendo por que existe essa diferença entre essas duas versões? Na versão BSD, quando uso a opção -p, ela chama automaticamente -l (escuta)?
obrigado ;-)
Ps: https://bugs.launchpad.net/ubuntu/+source/netcat-openbsd/+bug/590925/comments/3 -p é diferente entre os dois. A versão do OpenBSD a utiliza para definir uma porta de origem para conexões remotas, enquanto a tradicional nc a utiliza para especificar a porta local na qual irá escutar no modo de escuta.
-l
leva a porta para escutar, portanto-p
não é necessário. Não sei ao certo o que-p
acontece sem-l
. Não sei por que há uma diferença.netcat-traditional
para GNUnetcat-openbsd
enetcat
BSD.Respostas:
Na versão BSD, -l pega a porta para escutar, portanto -p não é necessário. Não tenho certeza do que -p faz sem -l. Não sei por que há uma diferença. - icktoofay <- o crédito pela solução vai para esse cara ... mas eu não acho que ele tenha uma conta no SU, apenas SO.
fonte