gpt4 book ai didi

sockets - Golang 写入套接字而不用担心数据不完整

转载 作者:行者123 更新时间:2023-12-05 02:01:03 24 4
gpt4 key购买 nike

我们都知道 Write 方法不能保证从缓冲区中写入字节。因此,使用原始 Write 方法将字节写入 asocket 的规范方式如下

//how many bytes we have written
written := 0

for written < len(msg){
//write the bytes from buffer that havent been witten yet
wr, err := conn.Write(msg[written:])

if err != nil{
return;
}

written += wr
}

现在假设我不想使用这种低级技术,而是想使用一个为我做这件事的函数。我应该使用标准库中的哪个函数?

最佳答案

将字节写入套接字的规范方法是:

_, err := conn.Write(msg)
if err != nil{
// handle error
}

无需循环,因为如果未写入完整缓冲区,Write 将返回错误。写在这方面不同于读。读取可以在不填充缓冲区的情况下成功。

关于sockets - Golang 写入套接字而不用担心数据不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66836404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com