boost::asio からの奇妙なエラーで問題が発生しています。TFTP サーバーの半分を実装しています (サーバー -> クライアントのみ)。最初のソケットのポート 69 で最初の RRQ パケットを取得し、DATA,ACK 交換を実行する別のソケットを作成します。そのソケットで async_receive() を開始し、データの最初のパケットの send() を実行します。次に、受信用のハンドラー コールバックを取得し (ACK が着信すると想定します)、「ターゲット マシンが積極的に拒否したため、接続できませんでした」というエラーが表示されます。
何にも手を差し伸べていないので、受信呼び出しがどのようにUNREACHABLEエラーを引き起こすのか、私は本当に理解していません。send() の結果を確認しましたが、エラーはありません。
ソケットのローカル エンドポイントとリモート エンドポイント (エラーの前後) を確認したところ、両方に正しい IP アドレスとポートがありました。
何か案は?私はグーグルで検索しましたが、この問題を抱えている人は他に見つかりません。ほとんどの結果がスタックオーバーフローにつながったので、ここで質問します。
編集- 私の問題は、デバッガーを使用していたことです。クライアントが約 1 秒間に 12 のリクエストを送信した後、最初のデータ パケットの送信に取り掛かるまでに、クライアントはタイムアウトしてあきらめ、私のデータは遅すぎました。ブレークポイントなしで実行すると、正常に動作します。アドバイスをくれたみんなに感謝します。手がかりを与えてくれたのは、Wireshark でパケットを監視していたことです。