在 go 中通过套接字发送 int64 的正确方法

我正在尝试通过 golang 中的 TCP 发送 int64,但是,我的接收器打印的数字与我发送的数字不同。完成此操作的正确方法是什么?


//Buffer on both client and server

buffer := make([]byte, 1024)


//Sender

fileInfo, error := os.Stat(fileName)

if error != nil {

    fmt.Println("Error opening file")

}

var fSize int = int(fileInfo.Size())


connection.Write([]byte(string(fSize)))



//Receiver

connection.Read(buffer)


fileSize := new(big.Int).SetBytes(bytes.Trim(buffer, "\x00")).Int64()

if err != nil {

    fmt.Println("not a valid filesize")

    fileSize = 0

}


浮云间
浏览 245回答 3
3回答

天涯尽头无女友

您不能使用 string() 从 int 进行转换,您需要使用strconv包。connection.Write([]byte(strconv.FormatInt(fileInfo.Size(), 10))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go