Problemstellung:
Sie haben eine offene TCP-Verbindung und lesen von es in einer Schleife. Sie möchten die Verbindung auf TLS mithilfe der in tx.Server.Conf.TlsConf gespeicherten Konfiguration aktualisieren, stoßen jedoch auf einen Segmentierungsfehler auf dem Client, wenn der Server einen Handshake versucht.
Lösung:
Das Problem liegt in der falschen Art und Weise, wie Sie das TLS-Upgrade durchführen. Um eine Verbindung korrekt auf TLS zu aktualisieren, befolgen Sie diese Schritte:
<code class="go">// server.socket is of type net.Conn conn := tls.Server(server.socket, tlsConfig) conn.Handshake() netConn := net.Conn(conn) // Update buffers and handle the connection as usual.</code>
TLS-Verbindungs-Upgrade-Prozess:
Wenn TLS aktiviert ist, geschieht Folgendes:
Hinweis zu Konvertierungen in Go:
Die Möglichkeit, nahtlos zwischen net.Conn und tls.Conn zu konvertieren, ist eine leistungsstarke Funktion von Go. Dies ermöglicht die einfache Integration von TLS in vorhandenen Code, ohne dass komplexe Wrapper oder Adapter erforderlich sind.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich eine bestehende TCP-Verbindung auf TLS in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!