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

求助 golang 大佬

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