Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "io"
- "log"
- "net"
- "time"
- )
- var targetAddr *net.TCPAddr
- func main() {
- addr, _ := net.ResolveTCPAddr("tcp", ":8089")
- tcpAddr, _ := net.ResolveTCPAddr("tcp", ":6379")
- targetAddr = tcpAddr
- listener, _ := net.ListenTCP("tcp", addr)
- for {
- conn, _ := listener.AcceptTCP()
- go server(conn)
- }
- }
- func server(conn *net.TCPConn) {
- conn.SetKeepAlive(true)
- conn.SetKeepAlivePeriod(time.Second * 15)
- tcpConn, _ := net.DialTCP("tcp", nil, targetAddr)
- defer tcpConn.Close()
- tcpConn.SetKeepAlive(true)
- tcpConn.SetKeepAlivePeriod(time.Second * 15)
- bools := make(chan bool)
- go func() {
- _, err := io.Copy(tcpConn, conn)
- log.Println(err)
- bools <- true
- }()
- go func() {
- _, err := io.Copy(conn, tcpConn)
- log.Println(err)
- bools <- true
- }()
- <- bools
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement