
最近在写 go 练手,前两天在看知乎一帖子 golang 实现内网穿透 跑代码发现 windows 跑的 client 没问题 mac 上面运行 client io.Copy 方法卡住 io.Copy 做的操作是并发执行两个 tcp 链接的拷贝工作 类似同时执行两个 io.Copy(local, remote) 卡在这里,也没有 error 输出 直到 tcp 断了才报错 有大佬知道是为啥么
1 lwch 2021 年 1 月 7 日 go 里的所有 io.Read 和 io.Write 操作都是阻塞操作,因为需要让出时间片给别的协程调度 |
2 xkeyideal 2021 年 1 月 7 日 go io.Copy(local, remote) go io.Copy(remote, local) |
3 xmf1234321 OP @lwch 大概明白您说的意思 但是不会改 哈哈 |
4 xmf1234321 OP |
5 xkeyideal 2021 年 1 月 7 日 @xmf1234321 那就只能看代码了 |