gocmdDaemon/io.go

41 lines
766 B
Go

package gocmdDaemon
import (
"encoding/json"
"net"
)
// Write 将给定的值序列化为JSON并写入网络连接
// 参数:
//
// conn: 网络连接对象
// v: 要写入的值
//
// 返回:
//
// error: 写入过程中发生的错误(如果有)
func Write[T any](conn net.Conn, v T) error {
return json.NewEncoder(conn).Encode(v)
}
// Read 从网络连接读取JSON数据并反序列化为指定类型
// 参数:
//
// conn: 网络连接对象
//
// 返回:
//
// *T: 反序列化后的值指针
// error: 读取或反序列化过程中发生的错误(如果有)
func Read[T any](conn net.Conn) (*T, error) {
// 再读报文内容
var zero T
err := json.NewDecoder(conn).Decode(&zero)
if err != nil {
return nil, err
}
return &zero, nil
}