これは私のDLibでの最初の試みです。私の目標は、多くのクライアントスレッドと同時に接続できるバックグラウンドサーバを持つことです。ドキュメントによると、dlib::server
の具体的な実装に進む方法はstart_async()
にする必要があるので、これは私のサーバーを設定する方法です。DLib - なぜstart_async()はバックグラウンドスレッドで接続を受け付けませんか?
class TestServer : public dlib::server
{
private:
void on_connect(dlib::connection& c)
{
cout << "Hi." << endl;
}
public:
void start_server()
{
set_listening_ip("127.0.0.1");
set_listening_port(4790);
start_async();
}
};
どのような次は私のServerMain.cpp
です:
int main(int argc, char** argv)
{
TestServer ts;
try
{
ts.start_server();
}
catch(exception& e)
{
cerr << e.what() << endl;
}
return 0;
}
そして、これが私のClientMain.cpp
次のとおりです。
int main(int argc, char** argv)
{
try
{
iosockstream stream("127.0.0.1:4790");
cout << "CLIENT - Connected." << endl;
}
catch(exception& e)
{
cerr << e.what() << endl;
}
cout << "Done." << endl;
return 0;
}
、クライアントの結果とそれに接続しようとします例外:
unable to connect to '127.0.0.1:4790'
また、lsof
もnetstat
も、ポート4790
でリッスンするプロセスを示していません。 私は間違っていますか?
私はMac OS X 10.9.5で、-std=c++11 -DDLIB_NO_GUI_SUPPORT
でコンパイルしています。 start_asyncのための右のDLIBから
あなたが私たちにコードを示しているので、あなた自身でこれを解決しようとしていたようです。それは、追加の詳細が(どのようなOSのような)追加することはできないと言っていない... –
@JesperJuhl私は最後の行にOSについての詳細を入れます。 – pr0gma