Kehren Sie die Reihenfolge Ihrer Argumente zu socat
um , und es funktioniert.
socat -v tcp-l:6666,reuseaddr,fork unix:/var/lib/mysql/mysql.sock
Dies weist socat
an zu
- Auf TCP-Port 6666 lauschen (mit
SO_REUSEADDR
) - Warten Sie, bis eine Verbindung akzeptiert wird
- Wenn eine Verbindung hergestellt wird, verzweige. Fahren Sie beim Kind mit den folgenden Schritten fort. Gehen Sie im übergeordneten Element zu 2.
- Öffnen Sie eine UNIX-Domänenverbindung zu
/var/lib/mysql/mysql.sock
Steckdose. - Daten zwischen den beiden Endpunkten übertragen und dann beenden.
Umgekehrt geschrieben
socat -v unix:/var/lib/mysql/mysql.sock tcp-l:6666,reuseaddr,fork
funktioniert nicht, weil dies socat
anweist zu
- Öffnen Sie eine UNIX-Domänenverbindung zu
/var/lib/mysql/mysql.sock
Steckdose. - Auf TCP-Port 6666 lauschen (mit
SO_REUSEADDR
) - Warten Sie, bis eine Verbindung akzeptiert wird
- Wenn eine Verbindung hergestellt wird, erzeugen Sie ein Arbeiterkind, um Daten zwischen den beiden Adressen zu übertragen.
- Der Elternteil akzeptiert weiterhin Verbindungen auf der zweiten Adresse, hat aber die erste Adresse nicht mehr verfügbar:Sie wurde dem ersten Kind gegeben. Von diesem Punkt an kann also nichts Sinnvolles mehr getan werden.