Files
strom/main.go
T
2025-11-02 13:31:56 +01:00

58 lines
857 B
Go

package main
import (
"io"
"log"
"net"
)
func OnConnect(conn net.Conn) (err error) {
target, err := net.Dial("tcp", "127.0.0.1:25566")
if err != nil {
return
}
errChan := make(chan error)
go func() {
_, innerErr := io.Copy(target, conn)
errChan <- innerErr
}()
go func() {
_, innerErr := io.Copy(conn, target)
errChan <- innerErr
}()
return <-errChan
}
func OnConnectWrapper(conn net.Conn) {
defer conn.Close()
err := OnConnect(conn)
if err != nil {
log.Println("Error: ", err)
}
}
func startListener() (err error) {
var l net.Listener
l, err = net.Listen("tcp", ":25565")
if err != nil {
return
}
defer l.Close()
for {
var client net.Conn
client, err = l.Accept()
if err != nil {
break
}
go OnConnectWrapper(client)
}
return
}
func main() {
err := startListener()
if err != nil {
panic(err)
}
}