1

非ブロッキング クライアントからの接続をシミュレートして、EINPROGRESS エラーが発生するようにするにはどうすればよいですか? このようなエラーをクライアントに返すためにサーバーから何ができますか (つまり、いくつかの tcp タイマー、生のソケット サーバーなどを調整します)。

4

2 に答える 2

1

localhost TCP に接続すると、常にすぐに接続されるため、connect()は返されませんEINPROGRESS

connect()返された「ふりをして」EINPROGRESS、クライアントソケットが書き込み可能になるまで待機することで、クライアントでそれをシミュレートできます(の後に接続されているかのようにEINPROGRESS)。connect()実際、一部のライブラリでは、即時接続と低速接続の 2 つの異なるコード パスを回避するために、非ブロッキングのためにそれを行っています。

于 2012-04-19T16:00:18.900 に答える