[英]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.