Windows Sockets send stringstream

Windows Sockets send stringstream

本文关键字:stringstream send Sockets Windows      更新时间:2023-10-16

我试图通过TCP套接字连接发送字符串流。问题是windows套接字只接受const char数据数组。使用套接字发送stringstream数据类型的最佳和最有效的方法是什么?

char *szMessage="Hello World";
send(Socket,szMessage,strlen(szMessage),0);

如果windows本地套接字库不足以胜任这项工作,我愿意学习不同的套接字库。此外,我也刚刚开始使用Boost c++库线程和他们的套接字库看起来有点先进,但我不确定它是否支持发送stringstream的。

Thanks in advance

stringstream提供了检索const char*的函数,参见文档:

std::stringstream ss( ... );
ss.str().c_str(); // now the const char *
send(Socket,ss.str().c_str(),ss.str().length(),0);

套接字API的目的是发送字节。c++中的字节数据类型为char

要通过套接字发送更复杂的数据类型,您需要一个协议。Windows提供(DCE) RPC。许多人使用SOAP。还有很多其他的。

A stringsrteam包含字符。如果您控制连接的两端,那么字符和字节之间的区别可能对您来说并不重要。如果你不这样做,它可能是非常重要的,因为两端可能在解释上不一致,除非你小心地确保两者使用相同的字符编码。