小编Cat*_*tty的帖子

在socket上发送和接收std :: string

我在SO上看到了类似的问题,但是没有回答我的问题.在这里,我试图发送和recv字符串:

我发送std :: string:

if( (bytecount=send(hsock, input_string.c_str(), input_string.length(),0))== -1)
Run Code Online (Sandbox Code Playgroud)

这可以正确接收吗?

if ((bytecount = recv(*csock, rcv.c_str(), rcv.length(), 0)) == -1)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

错误:在recv行上从'const void*'无效转换为'void*'[-fpermissive]`!

c++ sockets string c++11

12
推荐指数
3
解决办法
3万
查看次数

将std :: String转换为char*

我需要将字符串传递给socket send()函数,该函数只接受char*.所以我在这里尝试转换它:

void myFunc(std::string str)  //Taking string here const is good idea? I saw it on some examples on web
{
    char *buf = str.c_str;    //taking buf const is good idea?
    std::cout << str;
}

int main()
{
    const std::string str = "hello world";
    myFunc(str);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

给出错误:

test.cpp:6:18: error: cannot convert ‘std::basic_string<_CharT, _Traits, _Alloc>::c_str<char, std::char_traits<char>, std::allocator<char> >’ from type ‘const char* (std::basic_string<char>::)()const’ to type ‘char*’
Run Code Online (Sandbox Code Playgroud)

c++

-2
推荐指数
1
解决办法
9059
查看次数

标签 统计

c++ ×2

c++11 ×1

sockets ×1

string ×1