Obraťte pořadí svých argumentů na socat
a funguje to.
socat -v tcp-l:6666,reuseaddr,fork unix:/var/lib/mysql/mysql.sock
To dává pokyn socat
do
- Poslouchejte na portu TCP 6666 (s
SO_REUSEADDR
) - Počkejte na přijetí připojení
- Po navázání spojení rozdvojte. V dítěti pokračujte níže uvedenými kroky. V nadřazeném prvku přejděte na 2.
- Otevřete připojení domény UNIX k
/var/lib/mysql/mysql.sock
zásuvka. - Přeneste data mezi dvěma koncovými body a poté ukončete.
Psaní obráceně
socat -v unix:/var/lib/mysql/mysql.sock tcp-l:6666,reuseaddr,fork
nefunguje, protože to dává pokyn socat
do
- Otevřete připojení domény UNIX k
/var/lib/mysql/mysql.sock
zásuvka. - Poslouchejte na portu TCP 6666 (s
SO_REUSEADDR
) - Počkejte na přijetí připojení
- Po navázání spojení se vytvoří podřízený pracovník pro přenos dat mezi těmito dvěma adresami.
- Rodič nadále přijímá připojení na druhé adrese, ale první adresu již nemá k dispozici:byla přidělena prvnímu potomkovi. Takže od této chvíle nelze udělat nic užitečného.