第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang 1.5 io.Copy 被兩個 TCPConn 阻塞

Golang 1.5 io.Copy 被兩個 TCPConn 阻塞

Go
拉丁的傳說 2021-11-08 10:54:16
http://play.golang.org/p/gZo5RqgY4F我有一個關(guān)于io.Copy方法的問題。上面的鏈接將在 Go 1.5 下的第 44 行中阻塞。但會在 1.4.2 中通過。我不知道這個問題。這是我的 go 版本:go version go 1.5 darwin/amd64.io.Copygo 1.5 什么時候返回的?
查看完整描述

1 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗 獲得超13個贊

以前,當(dāng)系統(tǒng)調(diào)用的時間會導(dǎo)致您的第二個io.Copy[第 41 行]出現(xiàn)寫入錯誤時,您很幸運。(忽略錯誤往往會隱藏錯誤)


這純粹是偶然的(甚至可能是不正確的)。由于該副本 ( conn2)的源連接永遠(yuǎn)不會關(guān)閉,因此io.Copy永遠(yuǎn)不會收到io.EOF并且不會返回。您需要關(guān)閉每個復(fù)制 goroutine 中的反向連接,以解除其他人對io.Copy.


wg.Add(1)

go func() {

    io.Copy(conn1, conn2)

    // conn2 has returned EOF or an error, so we need to shut down the

    // other half of the duplex copy.

    conn1.Close()

    wg.Done()

}()


wg.Add(1)

go func() {

    io.Copy(conn2, conn1)

    conn2.Close()

    wg.Done()

}()


查看完整回答
反對 回復(fù) 2021-11-08
  • 1 回答
  • 0 關(guān)注
  • 500 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號