Files
trok/internal/client/tcp.go

44 lines
696 B
Go

/*
Copyright © 2024 tux <0xtux@pm.me>
*/
package client
import (
"net"
)
type TCPClient struct {
title string
conn net.Conn
}
func NewTCPClient(addr, title string) (*TCPClient, error) {
conn, err := net.Dial("tcp", addr)
return &TCPClient{
title: title,
conn: conn,
}, err
}
func (c *TCPClient) Start(handler func(conn net.Conn)) {
handler(c.conn)
}
func (c *TCPClient) Stop() error {
return c.conn.Close()
}
func (s *TCPClient) Addr() string {
return s.conn.RemoteAddr().String()
}
func (c *TCPClient) Host() string {
return c.conn.RemoteAddr().(*net.TCPAddr).IP.String()
}
func (c *TCPClient) Port() uint16 {
return uint16(c.conn.RemoteAddr().(*net.TCPAddr).Port)
}