mirror of https://github.com/ginuerzh/gost
2 changed files with 115 additions and 9 deletions
@ -0,0 +1,39 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
"github.com/ginuerzh/gosocks5" |
||||
|
"github.com/golang/glog" |
||||
|
"net" |
||||
|
) |
||||
|
|
||||
|
type UDPConn struct { |
||||
|
isClient bool |
||||
|
udpConn *net.UDPConn |
||||
|
udpAddr *net.UDPAddr |
||||
|
tcpConn net.Conn |
||||
|
} |
||||
|
|
||||
|
func Client(conn net.Conn, addr net.Addr) *UDPConn { |
||||
|
client := &UDPConn{isClient: true} |
||||
|
|
||||
|
switch conn := conn.(type) { |
||||
|
case net.UDPConn: |
||||
|
client.udpConn = conn |
||||
|
client.udpAddr = addr |
||||
|
default: |
||||
|
client.tcpConn = conn |
||||
|
} |
||||
|
|
||||
|
return client |
||||
|
} |
||||
|
|
||||
|
func Server(conn net.Conn) *UDPConn { |
||||
|
server := &UDPConn{} |
||||
|
switch conn := conn.(type) { |
||||
|
case net.UDPConn: |
||||
|
server.udpConn = conn |
||||
|
default: |
||||
|
server.tcpConn = conn |
||||
|
} |
||||
|
return server |
||||
|
} |
||||
Loading…
Reference in new issue