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

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

conn切換數(shù)據(jù)時,如果沒有數(shù)據(jù)傳輸,會發(fā)生什么情況?

conn切換數(shù)據(jù)時,如果沒有數(shù)據(jù)傳輸,會發(fā)生什么情況?

Go
FFIVE 2022-12-05 16:21:22
當(dāng)我閱讀開源代碼時:下面有這段代碼:streamConn := func(dst io.Writer, src io.Reader) {        io.Copy(dst, src)        streamWait.Done()    }    go streamConn(remoteConn, conn)    go streamConn(conn, remoteConn)你看到那里使用兩個go streamConn()在兩個之間切換數(shù)據(jù)conn。我想知道如果remoteConn沒有數(shù)據(jù)傳輸,那里復(fù)制什么?復(fù)制nil?
查看完整描述

1 回答

?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

通常網(wǎng)絡(luò)套接字在阻塞模式下運行——如果沒有更多的數(shù)據(jù)要接收,那么“接收”操作將坐在那里等待,直到有數(shù)據(jù)為止。這就是為什么有兩個 goroutine,每個方向一個——這樣一個可以繼續(xù)復(fù)制數(shù)據(jù),而另一個仍在等待數(shù)據(jù)(讀取時阻塞)。

對于一個類似但更直接的示例,您會發(fā)現(xiàn)在同一文件中直接調(diào)用remoteConn.Read(data)了更高的位置。調(diào)用時,Read() 將不會返回,直到它獲得一些數(shù)據(jù) – 或者直到它達到使用 SetReadDeadline() 設(shè)置的超時(在這種情況下它將通過 返回超時錯誤err)。


查看完整回答
反對 回復(fù) 2022-12-05
  • 1 回答
  • 0 關(guān)注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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