一尘不染

在Go中模拟TCP连接

go

在Go中,TCP连接(net.Conn)是io.ReadWriteCloser。我想通过模拟TCP连接来测试我的网络代码。我有两个要求:

  1. 要读取的数据存储在字符串中
  2. 每当写入数据时,我都希望将其存储在某种缓冲区中,以便以后使用

是否有数据结构或简单的方法?


阅读 349

收藏
2020-07-02

共1个答案

一尘不染

为什么不使用bytes.Buffer?它是一种io.ReadWriter并且具有String获取存储数据的方法。如果需要将其设置为io.ReadWriteCloser,则可以定义自己的类型:

type CloseableBuffer struct {
    bytes.Buffer
}

并定义一个Close方法:

func (b *CloseableBuffer) Close() error {
    return nil
}
2020-07-02