私はCesantaのMongooseサーバ/ "クライアント"ネットワーキングライブラリを実験しています。これはWindows 7 x64でPelle's Cを使っています。私は、サーバーへの20の接続をサポートするための2つのダイアログとメイン実行ファイル(サーバーとクライアント)としてポート90にLAN対応のテキストメッセージングアプリケーションを作成しようとしています。 FWIW、私は速いタイマーを使用してmg_mgr_poll(&mgr, 0)
を呼び出し、UIの応答性を保持し、非常に小さなCPUを使用しています。クライアントMongoose C appにLAN DNSを問い合わせますか?
Cesantaは、サーバー通信のセットアップの良い例を示していますが、それは完璧に動作します。また、サーバーに接続するクライアントを取得することもできますが、サーバーのIPアドレスはmg_connect()
で使用する必要があります。
サーバのホスト名はLANに公開されているので、LANにこのホストのIPを問い合わせることを望んでいました。私はしばらく前にVBでこの作業を持っていた:
Dim host As New IPHostEntry
host = Dns.GetHostEntry(hostName)
Return host.AddressList.GetValue(0)
VBプロジェクトが大きくなったとしてしかし、VBは、見知らぬ人とはるかに難しいが、私は古き良きC.(に移行しましたおそらくそれはNetBIOS名にフォールバックされましたクエリ、dunno。)いいえ、私はむしろ再びC#またはC++/VSに移行しません。
DNS解決に関するCesanta documentationはかなり曖昧です。 mg_connect(&mgr, "MyServerPC:90", ev_handler);
のようなコードは、単にmg_connect
にもかかわらず、ホスト名を解決しようとしますが、クラッシュします。
マングースがローカル(LAN)ホスト名を解決し、どのように?または、これは無駄です.Winsockですべてを手動で行う必要がありますか?