Compare commits
3 Commits
6e244be880
...
06e5e7cd9c
Author | SHA1 | Date | |
---|---|---|---|
06e5e7cd9c | |||
b26b0512f2 | |||
ecb6e12425 |
|
@ -4,7 +4,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.qowevisa.me/Qowevisa/tcpmachine/tcpclient"
|
"git.qowevisa.me/qowevisa/tcpmachine/tcpclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.qowevisa.me/Qowevisa/tcpmachine/tcpserver"
|
"git.qowevisa.me/qowevisa/tcpmachine/tcpserver"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
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
|
go 1.20
|
||||||
|
|
|
@ -8,20 +8,9 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"strings"
|
"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 {
|
func GetDefaultConfig() *ClientConfiguration {
|
||||||
return &ClientConfiguration{
|
return &ClientConfiguration{
|
||||||
MessageEndRune: '\n',
|
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 {
|
func CreateClient(addr string, options ...ClientOption) *Client {
|
||||||
conf := GetDefaultConfig()
|
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"
|
"net"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"git.qowevisa.me/Qowevisa/tcpmachine/tcpcommand"
|
"git.qowevisa.me/qowevisa/tcpmachine/tcpcommand"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ServerLoggingLevel int
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
LogLevel_Nothing = 0
|
LogLevel_Nothing = 0
|
||||||
LogLevel_Connection = 1 << iota
|
LogLevel_Connection = 1 << iota
|
||||||
|
@ -24,15 +22,6 @@ const (
|
||||||
LogLevel_ALL = LogLevel_Connection | LogLevel_Messages
|
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) {
|
func CreateHandleClientFuncFromCommands(bundle *tcpcommand.CommandBundle, conf ServerConfiguration) (func(client net.Conn), chan error) {
|
||||||
clientErrors := make(chan error, 16)
|
clientErrors := make(chan error, 16)
|
||||||
return func(client net.Conn) {
|
return func(client net.Conn) {
|
||||||
|
@ -58,24 +47,6 @@ func CreateHandleClientFuncFromCommands(bundle *tcpcommand.CommandBundle, conf S
|
||||||
}, clientErrors
|
}, 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) {
|
func defaultHandleClientFunc(server *Server) func(net.Conn) {
|
||||||
return func(client net.Conn) {
|
return func(client net.Conn) {
|
||||||
if server.PostHandlerClientFunc != nil {
|
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