标签: c++ sockets
我正在尝试使用C ++将一个char数组写入套接字。但是,我想写的数据是原始图像数据,因此包括'\ 0',它表示字符串的终止。无论如何都要发送所有数据,包括'\ 0'?
更新:问题在于使用strlen(),而不是write()
strlen()
write()
答案 0 :(得分:4)
send()函数不关心空字节。它发送你告诉它发送的长度。
答案 1 :(得分:1)
send()和write()都使用void*缓冲区和要写入的字节数。因此,NUL终结符的问题不会出现在API级别。
send()
void*
就应用程序代码而言,只是不要使用C字符串来表示二进制数据,你会没事的。
答案 2 :(得分:0)
将空字符写入TCP字符串没有问题。
我个人听说没有TCP API可以将其视为任何终止。通常,您指定缓冲区和长度,而其他所有事项都不重要。