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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在golang中通知TCP客戶端文件的結(jié)尾?

如何在golang中通知TCP客戶端文件的結(jié)尾?

Go
拉風(fēng)的咖菲貓 2021-05-07 14:12:48
我想通過golang中的TCP發(fā)送文件。這是我的服務(wù)器代碼:    c is connected *net.TCPConn    file, _ := os.Open(fn)    defer file.Close()    io.Copy(c, file)    // c.CloseWrite()和客戶:    as above, c is connected *net.TCPConn    file, _ := os.Create("file.txt")    defer file.Close()    io.Copy(file, c)我的問題是:這樣,客戶端無法收到文件的EOF所以,io.Copy受阻。我必須打電話c.CloseWrite通知客戶文件已結(jié)束。如果我要發(fā)送文件,將無法正常工作,該如何解決?
查看完整描述

3 回答

?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

如果使用的是TCP連接,則os.EOF錯(cuò)誤表示該連接被另一端關(guān)閉。

我認(rèn)為可靠發(fā)送文件的唯一方法是實(shí)現(xiàn)多狀態(tài)協(xié)議。

例如。在傳輸?shù)牡谝粋€(gè)狀態(tài)下,告訴客戶端要讀取多少字節(jié),然后進(jìn)入狀態(tài)2。在狀態(tài)2下,如果讀取了所有字節(jié),那么我們知道它讀取了整個(gè)文件。如果在讀取所有字節(jié)之前檢測到os.EOF,則丟棄并重新開始。


查看完整回答
反對 回復(fù) 2021-05-17
?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果您從發(fā)件人一側(cè)關(guān)閉連接,則一切正常。

我現(xiàn)在做了同樣的事情-通過TCP傳輸文件。如果添加,一切正常


defer conn.Close()

打開連接后。

例如:


conn, err := net.Dial("tcp", client)

defer conn.Close()


查看完整回答
反對 回復(fù) 2021-05-17
  • 3 回答
  • 0 關(guān)注
  • 292 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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