複数の IP アドレスが構成されていて、ネットワーク外にある PC があります。
この PC で CAsyncSocket を使用して VC++ で開発されたサーバー ソフトウェアを実行しようとしています。しかし、Bind()
このソフトウェアの機能は常にエラーで失敗しますWSAEADDRNOTAVAIL 10049
。
しかし、私が見つけたのは、次の場合にバインディングが正常に機能することです。
- PCがネットワークに接続されている場合
- PCに1つのIPアドレスが設定されている場合
ネットワーク接続と複数の IP 構成を使用したソケット バインドの依存関係を理解できません。これは CAsyncSocket の問題ですか、それともそのような状況でソケットを処理する方法はありますか?
編集:
これは、かなり単純なソケット作成 (明示的なバインディング) に使用するコードです。
ret = m_pAMC1_MAIN_VMS_A_SenderSocket->Create(m_amc1_main_vms_a_port_local, \
SOCK_DGRAM, FD_WRITE, (LPCTSTR) "193.0.161.111");
上記のケースでは、同じコードが正常に実行されることに注意してください。