私はプロジェクトに取り組んで、定期的な生存メッセージをhttpsサーバに送信する必要があります。libcurl定期的なリクエストを送信するために同じユーザ定義のポートを使用する
セキュリティ上の問題のため、最小限の数のポートを使用する必要があります(できるだけ未使用のポートをブロックする必要があります)。
linuxでhttps要求を送信するために、libcurlの簡単なインターフェイスを使用しています。
同じカールハンドラオブジェクト(CURLオブジェクト)を使用して、CURLOPT_LOCALPORTをポート番号に設定しようとしました。最初のリクエストはOKです。しかし、2番目の方法では、libcurl冗長モードがすでに使用中のアドレスになっています。 しかし、CURLOPT_LOCALPORTで設定したポートをコメントアウトすると、2番目の接続でも動作し、VERBOSEを1に設定すると、ローカルポートを設定しているバージョンで「既存の接続を再利用する」という印刷が表示されます。 そして、私はlinux netstatを使って、同じポートを使っているか調べます。 なぜローカルポートを設定すると失敗したのかわかりません。
また、私はcurl_easy_cleanupを使用して接続を終了しようとしましたが、tcp time_wait状態のため、しばらくポートを再利用することができません。
誰にでも解決策や提案はありますか?どうもありがとう。
編集 1つのポートを使用している理由は、接続の開閉をあまりに多くしすぎることではありません。
ため、セキュリティ上の問題の
申し訳ありませんが、定期的なメッセージに1つのポートを使用している主な理由は、定期的にlibcurlを使用して接続を開いたり閉じたりすることが、リソースの問題を引き起こす可能性があることです。 接続を開いたり閉じたりするのは良い考えではないようです。 – juan
何かのようなリソースの問題?実際に*問題がありますか?または、あなたはただ推測していますか? – EJP
ちょうど推測する... – juan