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.sockzá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.sockzá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.