通过套接字发送NULL数据

我目前正试图通过基于TCP / IP的套接字与外部应用程序通信。 我已经成功build立了与客户端的连接,并收到一些数据。 这个手册在这里指出

在收到这个命令后,客户端必须从守护进程读取一个确认字节。 肯定确认是一个零位的八位位组。 否定确认是任何其他模式的八位字节。

我想发送一个积极的承认,我发送这种方式我的服务器侦听代码是从这里获得

void WriteData(std::string content) { send(newsockfd,content.c_str(),content.length(),0); } WriteData("00000000"); 

我的问题是,如果我正确地发送这个数据(八位字节的零位)?

更新:

我已经阅读这篇文章,其中指出,发送只允许发送一个char *数组。 所以我不知道我怎么可以通过套接字发送一个字节。 我知道我可以做这样的事情

 std::bitset<8> b1 ; // [0,0,0,0,0,0,0,0] 

但我不知道如何通过套接字发送。

Solutions Collecting From Web of "通过套接字发送NULL数据"

尝试

 WriteData(std::string("\0",1)); 

使用你的功能,甚至:

 const char null_data(0); send(newsockfd,&null_data,1,0); 

直接发送。


 WriteData("00000000"); 

实际上会发送8个八位字节(十进制)(假设你的平台是所有现代系统兼容的ASCII码)。

然而, \0是字符串文字中用来表示空字符(即零八位字节)的转义序列。

在C ++中,字符和字节的概念可以追溯到C的最初几天,而且几乎被烘焙了。