亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

使用 Fprintf 時發送的字節數差異

使用 Fprintf 時發送的字節數差異

Go
湖上湖 2023-07-31 16:55:37
要求:我想得到“4 個字節已發送” - 當我發送以下十六進制消息時 - 我看到它們適用于一個十六進制消息,但在發送時進行微小更改時不適用于另一個十六進制消息下面的代碼更好地解釋了我的問題 - 首先是按預期發送了 4 個字節的工作十六進制,第二個是發送額外字節的另一個十六進制消息 - 我也需要找出一種方法來為第二個十六進制發送 4 個字節工作六角形:import (    "fmt"    "os"    "encoding/hex")func main() {    hexString, _ := hex.DecodeString("4214722e")    n, err := fmt.Fprintf(os.Stdout, string(hexString))    // The n and err return values from Fprintf are    // those returned by the underlying io.Writer.    if err != nil {        fmt.Fprintf(os.Stderr, "Fprintf: %v\n", err)    }    fmt.Printf("\n%d bytes written.\n", n)    fmt.Println([]byte(hexString))    fmt.Println(hex.Dump(hexString))}產生以下輸出:4 bytes written.[66 20 114 46]00000000  42 14 72 2e                                       |B.r.|無法使用十六進制 - 僅更改了一個值:(這里需要 4 個字節,但我得到了 13)https://play.golang.org/p/UNLsLdLk6g0import (    "fmt"    "os"    "encoding/hex")func main() {    hexString, _ := hex.DecodeString("42147225")    n, err := fmt.Fprintf(os.Stdout, string(hexString))    // The n and err return values from Fprintf are    // those returned by the underlying io.Writer.    if err != nil {        fmt.Fprintf(os.Stderr, "Fprintf: %v\n", err)    }    fmt.Printf("\n%d bytes written.\n", n)    fmt.Println([]byte(hexString))    fmt.Println(hex.Dump(hexString))}產生以下輸出,這不是預期的,即使打印時的字節看起來是 413 bytes written.[66 20 114 37]00000000  42 14 72 25                                       |B.r%|在第二個示例中需要發送 4 個字節 - 請幫我解決同樣的問題注意:為什么我在這里使用 Fprintf ?我需要通過 TCP 套接字發送此消息,但對于上面的示例 - 我發送相同的十六進制消息,但發送到標準輸出,以便我們輕松查看此消息。只要該解決方案可用于向套接字發送信息 - 我真的不在乎它是 Fprintf 還是其他東西
查看完整描述

1 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

如果您查看打印的字符串,您可以看到問題:

Br%!(NOVERB)

在這里,當最后一個字節是 0x25(即“%”)時,Fprintf 嘗試從輸入中讀取下一個格式化動詞,但該動詞不存在,因此它打印出錯誤消息?。∟OVERB)。那是你的額外字節。使用 FPrint 代替 Fprintf,它應該打印 4 個字節。


查看完整回答
反對 回復 2023-07-31
  • 1 回答
  • 0 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號