package main import ( "cidebug/pkg/iowrappers" "github.com/gorilla/websocket" "log" "net" ) func handleConnection(tcpConn net.Conn, wsURL string) { defer tcpConn.Close() conn, _, err := websocket.DefaultDialer.Dial(wsURL, nil) wsConn := iowrappers.NewWebSocketConn(conn) if err != nil { log.Println("WebSocket connection error:", err) return } defer wsConn.Close() iowrappers.SynchronizeStreams(wsConn, tcpConn) } func main() { tcpPort := "7000" wsURL := "ws://localhost:8000/ws" // Replace with your WebSocket server URL listener, err := net.Listen("tcp", ":"+tcpPort) if err != nil { log.Fatal(err) } defer listener.Close() log.Printf("TCP server listening on port %s", tcpPort) log.Printf("Forwarding connections to WebSocket server at %s", wsURL) for { conn, err := listener.Accept() if err != nil { log.Println(err) continue } go handleConnection(conn, wsURL) } }