Files
inp2025/tcp/client.go
2025-11-10 10:02:55 +08:00

46 lines
806 B
Go

package tcp
import (
"encoding/json"
"net"
)
func Do(addr, route string, method Method, body []byte) ([]byte, error) {
conn, err := net.Dial("tcp", addr)
if err != nil {
return []byte{}, err
}
defer conn.Close()
header := RequestHeader{
Method: method,
Route: route,
}
rawHeader, err := json.Marshal(header)
if err != nil {
return []byte{}, err
}
if err := sendFrame(conn, rawHeader); err != nil {
return []byte{}, err
}
if err := sendFrame(conn, body); err != nil {
return []byte{}, err
}
b, err := readFrame(conn)
if err != nil {
return []byte{}, err
}
return b, nil
}
func Get(addr, route string) ([]byte, error) {
return Do(addr, route, MethodGET, []byte{})
}
func Post(addr, route string, b []byte) ([]byte, error) {
return Do(addr, route, MethodPOST, b)
}