我们都知道,Write 方法不能保证从缓冲区中写入高字节。因此,使用原始 Write 方法将字节写入套接字的规范方法如下所示
//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 在写入所有切片数据之前停止时,Write 将返回非零错误。
在这方面,写入与读取不同。读取无需填充切片即可成功。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)