如何声明 IP 地址以将其与多种功能一起使用
How to declare ip address to use it with multiple functions?
我正在实现一个简单的客户端-服务器程序。我写的一些部分是:
int main(void){
using namespace boost::asio;
using namespace std;
const std::string ip = "localhost";
const int port = 10500;
ip::address addr = ip::address::from_string(ip);
ip::tcp::endpoint ep(addr, port);
ip::tcp::iostream s(ep);
s << "TERMINATEn" << std::flush;} //This sends Terminate command to the server.
}
void function(void){
s << "TERMINATEn" << std::flush;} // This part doesn't work.
}
我是助推 asio 和网络编程的新手。并在窗户上工作。
如上面的代码,我在 main 函数中声明了 IP 地址,但是当我尝试在 main 之外声明的其他函数中使用它时,它不起作用。带有如下错误:"s"未在此范围内声明。如果它是一个普通变量,我会在 main 之外声明它,所有其他函数都可以共享。但这对此不起作用。您需要在何处以及如何声明 IP 地址和端口。我假设
using namespace boost::asio;
using namespace std;
const std::string ip = "localhost";
const int port = 10500;
ip::address addr = ip::address::from_string(ip);
ip::tcp::endpoint ep(addr, port);
ip::tcp::iostream s(ep);
上面的部分是做声明。
你可以
把它变成一个全局变量。像这样,
using namespace boost::asio;
using namespace std;
ip::tcp::iostream s;
int main(void){
const std::string ip = "localhost";
const int port = 10500;
ip::address addr = ip::address::from_string(ip);
ip::tcp::endpoint ep(addr, port);
s = iostream(ep);
s << "TERMINATEn" << std::flush;} //This sends Terminate command to the server.
}
void function(void){
s << "TERMINATEn" << std::flush;}
}
更好的解决方案是将其作为参数传递给函数。全局变量通常不好使用。
using namespace boost::asio;
using namespace std;
int main(void){
const std::string ip = "localhost";
const int port = 10500;
ip::address addr = ip::address::from_string(ip);
ip::tcp::endpoint ep(addr, port);
ip::tcp::iostream s(ep);
function(s);
}
void function(ip::tcp::iostream &s){
s << "TERMINATEn" << std::flush;}
}
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 多态性和功能结合
- 带内存和隔离功能的SQLite
- 当直接分配时,为什么此功能指针分配起作用,而不是与有条件的操作员一起使用
- pcap_dump功能在与pcap_loop一起使用时不会被调用,pcap_dispatch始终返回 0
- 如何将BITMAPV5HEADER与CreateDIBitmap功能一起使用
- 将打开的CV的重映射功能与类型CV_8SC1的源图像一起使用
- 如何使此功能与 FILE 一起使用?C++
- 删除功能误差的C 与有条件的iniaization一起使用
- 重新分配指针后,将类功能与指针一起使用
- GCC vs Clang:将功能与-FPIC一起插入
- C 与查找功能一起使用时,迭代器为什么行为会有所不同
- 当与可能导致缓冲区溢出的功能一起使用时,外部变量是否比其他变量更大
- 如何声明 IP 地址以将其与多种功能一起使用
- 如何将QProgressDialog与QDomDocument保存功能一起使用
- 如何将unordered_set与比较功能一起使用
- 如何使枚举类与'bit-or'功能一起使用?
- 使用_GLIBCXX_CXX11_ABI将5.1版以前的C++ABI与C++11/14功能一起使用有什么意义
- 是否可以将STL复制功能与地图一起使用
- 如何将 Doxygen 的 "Documentation at other places" 功能与专门的模板类一起使用?