gdo*_*371 0 c++ sockets winsock
有人可以,请向我解释为什么string我使用的变量ostringstream无法通过套接字发送?
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);
Run Code Online (Sandbox Code Playgroud)
使用此代码我收到以下错误:
没有从std :: string到const char*的合适转换函数
因为这个send()函数需要一个const char *参数,而不是一个std::string,这就是.str()给你的东西.
试试这个:
comm_send1 = send(sock, var1.c_str(), msg_len3, 0);
Run Code Online (Sandbox Code Playgroud)
该.c_str()成员函数std::string提供您所需要的类型:C风格的字符串.