| 1234567891011121314151617181920212223242526 |
- package util
- import "io"
- // 桥接两个 IO 连接
- func Bridge(conn1, conn2 io.ReadWriteCloser) error {
- defer conn1.Close()
- defer conn2.Close()
- errChan := make(chan error, 2)
- // Copy conn1 to conn2
- go func() {
- _, err := io.Copy(conn2, conn1)
- errChan <- err
- }()
- // Copy conn2 to conn1
- go func() {
- _, err := io.Copy(conn1, conn2)
- errChan <- err
- }()
- // Wait for either direction to finish or error
- return <-errChan
- }
|