繁体   English   中英

无法在C ++中通过套接字发送ostringstream变量

[英]Cannot send ostringstream variable over socket in C++

有人可以向我解释为什么我无法通过套接字发送使用ostringstream派生的string变量吗?

std::ostringstream oss1;
std::ostringstream oss2;

int code = 52;

oss1 << "4" << "1" << "0" << "0" << "0" << "0" << 224 + code / 16 << code % 16;
oss2 << "4" << "0" << "0" << "0" << "0" << "0" << 224 + code / 16 << code % 16;

int msg_len3 = oss1.tellp;
int msg_len4 = oss2.tellp;

std::string var1 = oss1.str();
std::string var2 = oss2.str();

comm_send1 = send(sock, var1, msg_len3, 0);
comm_send2 = send(sock, var2, msg_len4, 0);

有了这段代码,我得到一个错误:

不存在从std :: string到const char *的合适转换函数

因为send()函数需要const char *参数,而不是std::string ,这是.str()给您的。

尝试以下方法:

comm_send1 = send(sock, var1.c_str(), msg_len3, 0);

std::string.c_str()成员函数为您提供所需的类型:C样式字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM