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

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

如何確定golang中連接的確切字節(jié)長(zhǎng)度?

如何確定golang中連接的確切字節(jié)長(zhǎng)度?

Go
夢(mèng)里花落0921 2023-03-21 15:31:45
我有以下代碼:var buf []byteread_len, err := conn.Read(buf)if err != nil {    fmt.Println("Error reading:", err.Error())}buffer := make([]byte, read_len)_, err = conn.Read(buffer)if err != nil {    fmt.Println("Error reading:", err.Error())}目的是確定read_len第一個(gè)buf,然后創(chuàng)建第二個(gè)buffer,這是傳入 json 請(qǐng)求的確切長(zhǎng)度。這只會(huì)導(dǎo)致錯(cuò)誤JSON 輸入意外結(jié)束當(dāng)我嘗試解組時(shí)var request Device_Type_Request_Structerr = json.Unmarshal(buffer, &request)我假設(shè)發(fā)生此錯(cuò)誤是因?yàn)閏onn.Read(buffer)沒有返回任何內(nèi)容,因?yàn)榱硪粋€(gè)緩沖區(qū)已經(jīng)讀取了它(雖然不確定)。我應(yīng)該如何確定 json 請(qǐng)求的長(zhǎng)度,同時(shí)又能夠?qū)⑵渥x入緩沖區(qū)(長(zhǎng)度完全相同)?
查看完整描述

1 回答

?
喵喔喔

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

Read返回讀取到緩沖區(qū)的字節(jié)數(shù)。因?yàn)閭鬟f給第一次調(diào)用 conn.Read 的緩沖區(qū)長(zhǎng)度為零,所以第一次調(diào)用 conn.Read 總是返回零。

如果不讀取數(shù)據(jù),就無(wú)法確定對(duì)等點(diǎn)發(fā)送了多少數(shù)據(jù)。

這個(gè)問題的簡(jiǎn)單解決方案是使用JSON 解碼器

d := json.NewDecoder(conn)

var request Device_Type_Request_Struct

if err := d.Decode(&request); err != nil {

    // handle error

}

解碼器從流中讀取和解碼 JSON 值。


查看完整回答
反對(duì) 回復(fù) 2023-03-21
  • 1 回答
  • 0 關(guān)注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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