1
非ブロッキングクライアントからの接続をシミュレートすると、EINPROGRESSエラーが発生することはありますか? iは、したがってconnect()
はEINPROGRESS
を返さない、TCP:サーバー側(Linux)からEINPROGRESSをシミュレート
非ブロッキングクライアントからの接続をシミュレートすると、EINPROGRESSエラーが発生することはありますか? iは、したがってconnect()
はEINPROGRESS
を返さない、TCP:サーバー側(Linux)からEINPROGRESSをシミュレート
TCPをlocalhostに接続し、常に即座に接続し(..すなわち、いくつかのTCPタイマー、生のソケットサーバなどのチューニング)クライアントにこのようなエラーを返すために、サーバから何を行うことができます。
connect()
が返されたことを "偽装"して、クライアントソケットが書き込み準備ができるまで待ちます(EINPROGRESS
の後に接続した場合)。実際には、いくつかのライブラリは、非ブロック化のために、即時接続と低速接続の2つの異なるコードパスを回避するためにconnect()
を実行します。
ありがとうございます。しかし、サーバーから何かできますか? syn-ack ...を遅らせるためのiptablesコマンドなど。 – Deepak
またはtcp_max_syn_backlogまたはtcp_synack_retriesをtcpサーバ用にsyscntlを使用して変更することによって – Deepak
サーバを別のホスト上で実行できます。または仮想マシン内で実行できます。私の心には何も良いことはありません... –