官方文档就说了
func Pipe() (Conn, Conn)
Pipe创建一个内存中的同步、全双工网络连接。连接的两端都实现了Conn接口。一端的读取对应另一端的写入,直接将数据在两端之间作拷贝;没有内部缓冲。
具体这个是怎么用啊?起什么作用?
官方文档就说了
func Pipe() (Conn, Conn)
Pipe创建一个内存中的同步、全双工网络连接。连接的两端都实现了Conn接口。一端的读取对应另一端的写入,直接将数据在两端之间作拷贝;没有内部缓冲。
具体这个是怎么用啊?起什么作用?
net.Pipe()是socket单元测试非常好的方案,不会占用本机端口,直接模拟socket两端操作,不需要Dial/Listen/Accept。
stackoverflow中的相关网页如下:
https://stackoverflow.com/que...
代码片断如下:
client, server := net.Pipe()
defer client.Close()
defer server.Close()
// server receive and response
go func() {
............
}()
// client => server
2 回答1.3k 阅读
2 回答1.1k 阅读
2 回答1.1k 阅读
2 回答868 阅读
3 回答684 阅读
1k 阅读
1 回答788 阅读
可以参考io下的Pipe(), io下的Pipe()是单向的,一端的读取匹配另一端的写入,直接在这两端之间复制数据。而net下的Pipe()是双向的,也就是说返回的Conn既可以读也可以写,通常用于不同区域的代码之间相互传递数据。