Windows Sockets send stringstream
Windows Sockets send stringstream
我试图通过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
包含字符。如果您控制连接的两端,那么字符和字节之间的区别可能对您来说并不重要。如果你不这样做,它可能是非常重要的,因为两端可能在解释上不一致,除非你小心地确保两者使用相同的字符编码。
相关文章:
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 当我们进行一些操作时,应该使用什么'std::string'或'std::stringstream'?
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- 使用 "stringstream " 将字符串转换为整数
- 当对套接字 send() 的同步调用由于连接另一端丢失而被阻止时,如何恢复?
- std::stringstream 返回字符 *
- std::stringstream::flush() 应该做什么吗?
- ZMQ::send() 抛出异常并终止 QNX 进程.为什么以及如何从中恢复?
- 静态 std::stringstream 的叮当整警告
- Stringstream编译错误仅发生在linux环境中
- 在UNIX中通过recv/send交换数据时,如何正确使用缓冲区
- 如何为winsock的send()函数构造constchar*缓冲区
- "stringstream"复制构造它的字符串吗?
- 为什么"std::stringstream::stringstream(std::string&&)"不存在?
- 为什么 {fmt} 比 std::stringstream 慢?
- 实时线程中的 ZeroMQ inproc PubSub send() 调用会导致严重的阻塞吗?
- Epoll zero recv() and negative(EAGAIN) send()
- QDBus send int[]
- C++命令末尾的 std::stringstream 空格
- Windows Sockets send stringstream