私は単純なクライアントサーバープログラムを実装しています。私が書いたいくつかの部分は次のとおりです。
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 << "TERMINATE\n" << std::flush;} //This sends Terminate command to the server.
}
void function(void){
s << "TERMINATE\n" << std::flush;} // This part doesn't work.
}
ブースト asio とネットワーク プログラミングは初めてです。そしてWindows MingGWに取り組んでいます。
上記のコードのように、メイン関数で IP アドレスを宣言しましたが、メインの外で宣言された他の関数で使用しようとすると、機能しません。次のようなエラーが発生します: 's' はこのスコープで宣言されていません。それが通常の変数である場合、メインの外で宣言し、他のすべての関数が共有できます。しかし、これではうまくいきません。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);
上記の部分は宣言を行っています。