Vend rækkefølgen af dine argumenter til socat
, og det virker.
socat -v tcp-l:6666,reuseaddr,fork unix:/var/lib/mysql/mysql.sock
Dette instruerer socat
til
- Lyt på TCP-port 6666 (med
SO_REUSEADDR
) - Vent med at acceptere en forbindelse
- Når der oprettes en forbindelse, forgrenes. I barnet skal du fortsætte nedenstående trin. Gå til 2. i forælderen
- Åbn en UNIX-domæneforbindelse til
/var/lib/mysql/mysql.sock
stikkontakt. - Overfør data mellem de to endepunkter, og afslut derefter.
At skrive det omvendt
socat -v unix:/var/lib/mysql/mysql.sock tcp-l:6666,reuseaddr,fork
virker ikke, fordi dette instruerer socat
til
- Åbn en UNIX-domæneforbindelse til
/var/lib/mysql/mysql.sock
stikkontakt. - Lyt på TCP-port 6666 (med
SO_REUSEADDR
) - Vent med at acceptere en forbindelse
- Når der oprettes forbindelse, skal du få et arbejderbarn til at overføre data mellem de to adresser.
- Forælderen fortsætter med at acceptere forbindelser på den anden adresse, men har ikke længere den første adresse tilgængelig:den blev givet til det første barn. Så der kan ikke gøres noget brugbart fra dette tidspunkt.