Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;TCP套接字|无法转换‘;std::uu cxx11::字符串到‘;常量字符*’;|‘;服务器&x2019;未在此范围中声明_C++_Sockets - Fatal编程技术网

C++ C++;TCP套接字|无法转换‘;std::uu cxx11::字符串到‘;常量字符*’;|‘;服务器&x2019;未在此范围中声明

C++ C++;TCP套接字|无法转换‘;std::uu cxx11::字符串到‘;常量字符*’;|‘;服务器&x2019;未在此范围中声明,c++,sockets,C++,Sockets,错误: error: cannot convert ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘const char*’ for argument ‘2’ to ‘int inet_pton(int, const char*, void*)’ if(inet_pton(AF_INET, target, &serv_addr.sin_addr)<=0)

错误

error: cannot convert ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘const char*’ for argument ‘2’ to ‘int inet_pton(int, const char*, void*)’
if(inet_pton(AF_INET, target, &serv_addr.sin_addr)<=0)  
                                               ^
error: ‘server’ was not declared in this scope
connect(sock, (const sockaddr *)&server, sizeof(server));
错误:无法将参数“2”的“std::\uucx11::string{aka std::\uuucx11::basic\u string}”转换为“const char*”,将其转换为“int inet\u pton(int,const char*,void*)”

如果(inet\u pton(AF\u inet,target,&serv\u addr.sin\u addr)对于第一个错误,
inet\u pton()
需要一个
const char*
作为输入,但您给它的是一个
std::string
,它不能隐式转换为
const char*
。您只需调用
target.c\u str()
即可获得一个输入,不过:


if(inet\u pton(AF\u inet,target.c\u str(),&serv\u addr.sin\u addr)对于第一个错误,您显然需要target.c\u str(),虽然很难看到目标是如何和在何处声明的。第二,很难说,因为我看不到服务器定义在何处。但显然不是在这个函数中。请使您的问题和代码片段更具可读性。看起来像
服务器
,如果它被定义,则在另一个作用域中定义,并且无法看到它在何处正在使用。我建议将此问题分解为一个问题,并生成一个示例来演示该问题