initial commit

This commit is contained in:
ginuerzh
2021-03-30 22:34:01 +08:00
commit b74e4cc8a4
23 changed files with 925 additions and 0 deletions

11
client/client.go Normal file
View File

@ -0,0 +1,11 @@
package client
import (
"github.com/go-gost/gost/client/connector"
"github.com/go-gost/gost/client/transporter"
)
type Client struct {
Connector connector.Connector
Transporter transporter.Transporter
}

View File

@ -0,0 +1,11 @@
package connector
import (
"context"
"net"
)
// Connector is responsible for connecting to the destination address.
type Connector interface {
Connect(ctx context.Context, conn net.Conn, network, address string) (net.Conn, error)
}

View File

@ -0,0 +1,14 @@
package transporter
import (
"context"
"net"
)
// Transporter is responsible for handshaking with server.
type Transporter interface {
Dial(ctx context.Context, addr string) (net.Conn, error)
Handshake(ctx context.Context, conn net.Conn) (net.Conn, error)
// Indicate that the Transporter supports multiplex
Multiplex() bool
}