Compare commits
3 Commits
6e244be880
...
06e5e7cd9c
Author | SHA1 | Date | |
---|---|---|---|
06e5e7cd9c | |||
b26b0512f2 | |||
ecb6e12425 |
|
@ -4,7 +4,7 @@ import (
|
|||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.qowevisa.me/Qowevisa/tcpmachine/tcpclient"
|
||||
"git.qowevisa.me/qowevisa/tcpmachine/tcpclient"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
"net"
|
||||
"time"
|
||||
|
||||
"git.qowevisa.me/Qowevisa/tcpmachine/tcpserver"
|
||||
"git.qowevisa.me/qowevisa/tcpmachine/tcpserver"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
|
2
go.mod
2
go.mod
|
@ -1,3 +1,3 @@
|
|||
module git.qowevisa.me/Qowevisa/tcpmachine
|
||||
module git.qowevisa.me/qowevisa/tcpmachine
|
||||
|
||||
go 1.20
|
||||
|
|
|
@ -8,20 +8,9 @@ import (
|
|||
"net"
|
||||
"strings"
|
||||
|
||||
"git.qowevisa.me/Qowevisa/tcpmachine/tcpcommand"
|
||||
"git.qowevisa.me/qowevisa/tcpmachine/tcpcommand"
|
||||
)
|
||||
|
||||
type ClientConfiguration struct {
|
||||
MessageEndRune rune
|
||||
MessageSplitRune rune
|
||||
//
|
||||
Status uint32
|
||||
ErrorResolver func(chan error)
|
||||
//
|
||||
ServerHandlerFunc func(server net.Conn)
|
||||
//
|
||||
}
|
||||
|
||||
func GetDefaultConfig() *ClientConfiguration {
|
||||
return &ClientConfiguration{
|
||||
MessageEndRune: '\n',
|
||||
|
@ -34,26 +23,6 @@ func GetDefaultConfig() *ClientConfiguration {
|
|||
}
|
||||
}
|
||||
|
||||
type ErrorResolverFunc func(errors chan error)
|
||||
|
||||
type Client struct {
|
||||
MessageEndRune rune
|
||||
MessageSplitRune rune
|
||||
//
|
||||
addr string
|
||||
Status uint32
|
||||
exit chan bool
|
||||
Server net.Conn
|
||||
IsConnected bool
|
||||
//
|
||||
ServerHandlerFunc func(server net.Conn)
|
||||
//
|
||||
ErrorsChannel chan error
|
||||
ErrorResolver ErrorResolverFunc
|
||||
//
|
||||
Commands []tcpcommand.Command
|
||||
}
|
||||
|
||||
func CreateClient(addr string, options ...ClientOption) *Client {
|
||||
conf := GetDefaultConfig()
|
||||
|
||||
|
|
38
tcpclient/types.go
Normal file
38
tcpclient/types.go
Normal file
|
@ -0,0 +1,38 @@
|
|||
package tcpclient
|
||||
|
||||
import (
|
||||
"net"
|
||||
|
||||
"git.qowevisa.me/qowevisa/tcpmachine/tcpcommand"
|
||||
)
|
||||
|
||||
type ClientConfiguration struct {
|
||||
MessageEndRune rune
|
||||
MessageSplitRune rune
|
||||
//
|
||||
Status uint32
|
||||
ErrorResolver func(chan error)
|
||||
//
|
||||
ServerHandlerFunc func(server net.Conn)
|
||||
//
|
||||
}
|
||||
|
||||
type ErrorResolverFunc func(errors chan error)
|
||||
|
||||
type Client struct {
|
||||
MessageEndRune rune
|
||||
MessageSplitRune rune
|
||||
//
|
||||
addr string
|
||||
Status uint32
|
||||
exit chan bool
|
||||
Server net.Conn
|
||||
IsConnected bool
|
||||
//
|
||||
ServerHandlerFunc func(server net.Conn)
|
||||
//
|
||||
ErrorsChannel chan error
|
||||
ErrorResolver ErrorResolverFunc
|
||||
//
|
||||
Commands []tcpcommand.Command
|
||||
}
|
|
@ -9,11 +9,9 @@ import (
|
|||
"net"
|
||||
"strings"
|
||||
|
||||
"git.qowevisa.me/Qowevisa/tcpmachine/tcpcommand"
|
||||
"git.qowevisa.me/qowevisa/tcpmachine/tcpcommand"
|
||||
)
|
||||
|
||||
type ServerLoggingLevel int
|
||||
|
||||
const (
|
||||
LogLevel_Nothing = 0
|
||||
LogLevel_Connection = 1 << iota
|
||||
|
@ -24,15 +22,6 @@ const (
|
|||
LogLevel_ALL = LogLevel_Connection | LogLevel_Messages
|
||||
)
|
||||
|
||||
type ServerConfiguration struct {
|
||||
MessageEndRune rune
|
||||
MessageSplitRune rune
|
||||
HandleClientFunc func(client net.Conn)
|
||||
LogLevel ServerLoggingLevel
|
||||
//
|
||||
ErrorResolver func(chan error)
|
||||
}
|
||||
|
||||
func CreateHandleClientFuncFromCommands(bundle *tcpcommand.CommandBundle, conf ServerConfiguration) (func(client net.Conn), chan error) {
|
||||
clientErrors := make(chan error, 16)
|
||||
return func(client net.Conn) {
|
||||
|
@ -58,24 +47,6 @@ func CreateHandleClientFuncFromCommands(bundle *tcpcommand.CommandBundle, conf S
|
|||
}, clientErrors
|
||||
}
|
||||
|
||||
type Server struct {
|
||||
addr string
|
||||
PreHandlerClientFunc func(client net.Conn)
|
||||
HandleClientFunc func(client net.Conn)
|
||||
// Use PostHandlerClientFunc in your HandleClientFunc if you
|
||||
// use custom HandleClientFunc
|
||||
PostHandlerClientFunc func(client net.Conn)
|
||||
Exit chan bool
|
||||
//
|
||||
MessageEndRune rune
|
||||
MessageSplitRune rune
|
||||
ErrorsChannel chan error
|
||||
ErrorResolver func(chan error)
|
||||
LogLevel ServerLoggingLevel
|
||||
//
|
||||
Commands []tcpcommand.Command
|
||||
}
|
||||
|
||||
func defaultHandleClientFunc(server *Server) func(net.Conn) {
|
||||
return func(client net.Conn) {
|
||||
if server.PostHandlerClientFunc != nil {
|
||||
|
|
36
tcpserver/types.go
Normal file
36
tcpserver/types.go
Normal file
|
@ -0,0 +1,36 @@
|
|||
package tcpserver
|
||||
|
||||
import (
|
||||
"net"
|
||||
|
||||
"git.qowevisa.me/qowevisa/tcpmachine/tcpcommand"
|
||||
)
|
||||
|
||||
type ServerLoggingLevel int
|
||||
|
||||
type ServerConfiguration struct {
|
||||
MessageEndRune rune
|
||||
MessageSplitRune rune
|
||||
HandleClientFunc func(client net.Conn)
|
||||
LogLevel ServerLoggingLevel
|
||||
//
|
||||
ErrorResolver func(chan error)
|
||||
}
|
||||
|
||||
type Server struct {
|
||||
addr string
|
||||
PreHandlerClientFunc func(client net.Conn)
|
||||
HandleClientFunc func(client net.Conn)
|
||||
// Use PostHandlerClientFunc in your HandleClientFunc if you
|
||||
// use custom HandleClientFunc
|
||||
PostHandlerClientFunc func(client net.Conn)
|
||||
Exit chan bool
|
||||
//
|
||||
MessageEndRune rune
|
||||
MessageSplitRune rune
|
||||
ErrorsChannel chan error
|
||||
ErrorResolver func(chan error)
|
||||
LogLevel ServerLoggingLevel
|
||||
//
|
||||
Commands []tcpcommand.Command
|
||||
}
|
Loading…
Reference in New Issue
Block a user