write()-ing 数据,包括C++中的''

write()-ing data including '' in C++

本文关键字:中的 C++ 包括 -ing 数据 write      更新时间:2023-10-16

我正在尝试将字符数组写入C++中的套接字。但是,我希望写入的数据是原始图像数据,因此包括"\0",它表示字符串的终止。是否无论如何要发送所有数据,包括"\0"?

更新:问题在于使用strlen(),而不是write()

send() 函数不关心空字节。它发送您告诉它发送的长度。

send()write()都需要一个void*缓冲区和要写入的字节数。因此,NUL 终止器的问题不会出现在 API 级别。

就应用程序代码而言,不要使用 C 字符串来表示二进制数据,你会没事的。

空字符写入 TCP 字符串没有问题。

就我个人而言,我听说过没有TCP API会将其视为任何内容的终止。通常,您指定缓冲区和长度,其他所有内容都不重要。