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

  • 要读取的数据存储在字符串
  • 每当写入数据时,我都希望将其存储在某种缓冲区中,以便以后可以访问

  • 有没有为此的数据结构,或者是简单的制造方法?

    最佳答案

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

    type CloseableBuffer struct {
        bytes.Buffer
    }
    

    并定义一个Close方法:
    func (b *CloseableBuffer) Close() error {
        return nil
    }
    

    09-20 03:47