-1

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

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

4

3 回答 3

4

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

于 2012-12-09T22:14:31.853 回答
1

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

就应用程序代码而言,不要使用 C 字符串来表示二进制数据,就可以了。

于 2012-12-09T22:14:16.867 回答
0

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

我个人听说没有任何 TCP API 会将其视为任何事物的终止。通常,您指定缓冲区和长度,其他一切都无关紧要。

于 2012-12-09T22:14:06.670 回答