我正在尝试从连接中读取一系列信息。我没有编写服务器部分,也无法修改协议(否则我会让协议更友好)。
我正在尝试在Go中编写一个服务,将任意数量的字节循环读入缓冲区并将其传递给另一个处理程序(我也无法修改此部分)。
这是我的当前设置。
我正在尝试在Go中编写一个服务,将任意数量的字节循环读入缓冲区并将其传递给另一个处理程序(我也无法修改此部分)。
这是我的当前设置。
buf := make([]byte, 256)
for {
n, err := conn.Read(buf)
fmt.Println(string(buf))
if err != nil || n== 0 {
return
}
Handle(buf[:n])
}
当有足够的字节可读时,这个方法可以正常运行... 但是,在流结束时,可能没有256个可读字节。是否有任何方法可以在Read()时保留我的256字节缓冲区,以便优雅地返回?
EOF
- 请参考 io.Reader 文档 - 当n != 0
时,可能会返回EOF
。不确定这是否是你的问题! - Nick Craig-Wood