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

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

Go - TCP 客戶端經(jīng)常錯過輔助 JSON 回復(fù)

Go - TCP 客戶端經(jīng)常錯過輔助 JSON 回復(fù)

Go
holdtom 2022-12-19 21:16:58
我正在嘗試編寫一個 TCP 客戶端,將 JSON RPC 發(fā)送到本地托管的 TCP 服務(wù)器。服務(wù)器應(yīng)立即返回兩個答復(fù)。TCP 服務(wù)器托管在端口 60000 上。這是客戶端代碼的樣子:package mainimport (    "fmt"    "log"    "bufio"    "net")func main() {    d := net.Dialer{ }    c, err := d.Dial("tcp", "127.0.0.1:60000")    if err != nil {        log.Println(err)        return    }    data := `{"id": 1,"method":"mining.configure","params": [["version-rolling"],{"version-rolling.mask": "1fffe000","version-rolling.min-bit-count": 16}]}`    fmt.Fprintf(c, data+"\n")    for {        message, _ := bufio.NewReader(c).ReadString('\n')        fmt.Println(message)    }   }這就是我要發(fā)送的內(nèi)容(“數(shù)據(jù)”變量){ "id": 1, "method":"mining.configure", "params": [["version-rolling"],           {"version-rolling.mask": "1fffe000",            "version-rolling.min-bit-count": 16}]}這是預(yù)期的回復(fù):{"error":null,"id":1,"result":{"version-rolling":true,"version-rolling.mask":"1fffe000"}}{"id":null,"method":"mining.set_version_mask","params":["1fffe000"]}大多數(shù)時候,我只得到第一個響應(yīng)(結(jié)果為“字段”),而沒有第二個具有“方法”字段的 JSON。有時我會兩者兼得。但這是通常的回答:{"error":null,"id":1,"result":{"version-rolling":true,"version-rolling.mask":"1fffe000"}}我知道當(dāng)代碼變得像這樣不確定時,這是因?yàn)榘l(fā)生了異步問題。但是我遇到的每個新手教程都講授了這種用于編寫 TCP 客戶端的確切結(jié)構(gòu)。它缺少什么?我已經(jīng)使用帶有 Twisted 框架的 Python 對服務(wù)器進(jìn)行了廣泛的相同 RPC 調(diào)用測試,并且我在 100% 的時間內(nèi)都得到了回復(fù)。這使我確定問題出在我的客戶端代碼中,而不是服務(wù)器中。
查看完整描述

1 回答

?
墨色風(fēng)雨

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

根據(jù)接收數(shù)據(jù)的時間,對 ReadString 的調(diào)用可以緩沖\n. 問題中的代碼在循環(huán)的每次迭代中丟棄讀取器和讀取器中緩沖的數(shù)據(jù)。


為避免丟棄數(shù)據(jù),創(chuàng)建讀取器一次并在循環(huán)內(nèi)重復(fù)使用:


r := bufio.NewReader(c)

for {

    message, _ := r.ReadString('\n')

    fmt.Println(message)

}   


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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