gocmdDaemon/io.go

35 lines
753 B
Go
Raw Permalink Normal View History

2025-06-05 00:18:07 +08:00
package main
import (
"encoding/json"
"net"
)
2025-06-05 09:49:00 +08:00
// Write 将给定的值序列化为JSON并写入网络连接
// 参数:
// conn: 网络连接对象
// v: 要写入的值
// 返回:
// 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数据并反序列化为指定类型
// 参数:
// conn: 网络连接对象
// 返回:
// *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
}