在Go中模拟TCP连接

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

  1. 要读取的数据存储在字符串中

  2. 每当写入数据时,我都希望将其存储在某种缓冲区中,以便以后使用

有没有为此的数据结构,或者是一种简单的制作方法?


潇湘沐
浏览 243回答 3
3回答

呼唤远方

为什么不使用bytes.Buffer?它是一种io.ReadWriter并且具有String获取存储数据的方法。如果需要将其设置为io.ReadWriteCloser,则可以定义自己的类型:type CloseableBuffer struct {    bytes.Buffer}并定义一个Close方法:func (b *CloseableBuffer) Close() error {    return nil}

慕勒3428872

询问问题时不知道是否存在,但是您可能希望net.Pipe()它为您提供两个net.Conn相互链接的全双工实例
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go