2016-04-06 6 views
1

私はプロジェクトに取り組んで、定期的な生存メッセージを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

...

はセキュリティ上の問題はありません。複数のローカル発信ポートの使用について、この恐怖を乗り越える必要があります。セキュリティの恩恵はゼロになります。

+0

申し訳ありませんが、定期的なメッセージに1つのポートを使用している主な理由は、定期的にlibcurlを使用して接続を開いたり閉じたりすることが、リソースの問題を引き起こす可能性があることです。 接続を開いたり閉じたりするのは良い考えではないようです。 – juan

+0

何かのようなリソースの問題?実際に*問題がありますか?または、あなたはただ推測していますか? – EJP

+0

ちょうど推測する... – juan

関連する問題