gocmdDaemon/io.go

41 lines
766 B
Go
Raw Permalink Normal View History

2025-06-05 10:02:19 +08:00
package gocmdDaemon
2025-06-05 00:18:07 +08:00
import (
"encoding/json"
"net"
)
2025-06-05 09:49:00 +08:00
// Write 将给定的值序列化为JSON并写入网络连接
// 参数:
2025-06-05 10:02:19 +08:00
//
// conn: 网络连接对象
// v: 要写入的值
//
2025-06-05 09:49:00 +08:00
// 返回:
2025-06-05 10:02:19 +08:00
//
// error: 写入过程中发生的错误(如果有)
2025-06-05 00:18:07 +08:00
func Write[T any](conn net.Conn, v T) error {
return json.NewEncoder(conn).Encode(v)
}
2025-06-05 09:49:00 +08:00
// Read 从网络连接读取JSON数据并反序列化为指定类型
// 参数:
2025-06-05 10:02:19 +08:00
//
// conn: 网络连接对象
//
2025-06-05 09:49:00 +08:00
// 返回:
2025-06-05 10:02:19 +08:00
//
// *T: 反序列化后的值指针
// error: 读取或反序列化过程中发生的错误(如果有)
2025-06-05 00:18:07 +08:00
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
}