• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xmf1234321
V2EX  ›  程序员

求助 golang 大佬

  •  
  •   xmf1234321 · Jan 7, 2021 · 2826 views
    This topic created in 2132 days ago, the information mentioned may be changed or developed.

    最近在写 go 练手,前两天在看知乎一帖子 golang 实现内网穿透 跑代码发现 windows 跑的 client 没问题 mac 上面运行 client io.Copy 方法卡住 io.Copy 做的操作是并发执行两个 tcp 链接的拷贝工作 类似同时执行两个 io.Copy(local, remote) 卡在这里,也没有 error 输出 直到 tcp 断了才报错 有大佬知道是为啥么

    6 replies  •  2021-01-08 01:01:26 +08:00
    lwch
    lwch
    Jan 7, 2021
    1
    go 里的所有 io.Read 和 io.Write 操作都是阻塞操作,因为需要让出时间片给别的协程调度
    xkeyideal
    xkeyideal
    Jan 7, 2021
    2
    go io.Copy(local, remote)
    go io.Copy(remote, local)
    xmf1234321
    xmf1234321
    OP
    Jan 7, 2021
    3
    @lwch 大概明白您说的意思 但是不会改 哈哈
    xmf1234321
    xmf1234321
    OP
    Jan 7, 2021
    4
    @xkeyideal 嗯呢 就是这样写的 但是都执行不下去 windows 没问题
    xkeyideal
    xkeyideal
    Jan 7, 2021
    5
    @xmf1234321 那就只能看代码了
    fuse
    fuse
    Jan 8, 2021 via iPhone
    6
    @lwch 因为等待数据才挂起,因果颠倒
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1187 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:45 · PVG 01:45 · LAX 09:45 · JFK 12:45
    ♥ Do have faith in what you're doing.