ソケットからデータを読み取るのにrecv()
、ソケットブロッキング/ノンブロッキングを設定するのにfcntl()
を使用しています。私の質問は:recv()
(ブロッキング)を呼び出し、別のスレッドからfcntl()
を呼び出してソケットを非ブロッキングに設定した場合、現在実行中のrecv()
リターンまたはfcntl()
の結果は、ブロッキング後にのみ発生し、recv()
が返されます再び?ブロッキングrecv()vs fcntl()
1
A
答えて
2
現在の受信動作には影響しません。
奇妙なことです。
+0
答えをありがとう!私はこのメソッドを使用してスレッドをブロックする目を覚ましたかったのですが、私は他のオプションを検討すると思います。 –
+0
@BertalanRadostyan: "*ブロッキングスレッドを目覚めさせたい*"スレッドにシグナルを送ります(SA_RESTARTがシグナルハンドラでないことを確認してください)。 – alk
関連する問題
- 1. エラー:「fcntlの」
- 2. fcntlの代わりに
- 3. SpringブロッキングとJavaで非ブロッキングREST 8
- 4. ERLANG wait()とブロッキング
- 5. ブロッキングCSSホバー
- 6. C#スレッディングとブロッキング
- 7. NSOperationQueueブロッキングのデバッグ
- 8. MailchimpブロッキングAPIリクエスト
- 9. JAXB.marshalブロッキングWebサービスコール
- 10. Pythonソケットテストrecv()data
- 11. Pythonソケットプログラミングrecv
- 12. ZeroMq recv not blocking
- 13. mpi4py recvデータキャップ?
- 14. EAGAIN on recv()
- 15. fcntl()スコープの可視性の動作?
- 16. のfcntl問題なし手動入力
- 17. fcntl bytesファイルのロックをLinuxで行う
- 18. ウィンドウ内のインポート方法fcntlモジュール
- 19. TelnetブロッキングC#TCPサーバー
- 20. UIButtonブロッキングtouchesBeganとtouchesMoved
- 21. 非ブロッキングのpythonソケット
- 22. グリーンスレッドのI/Oブロッキング
- 23. java非ブロッキングHTTPクライアント
- 24. アクカとブロッキング操作
- 25. MPIで非ブロッキングの送信とブロッキング受信の使用?
- 26. recv()内の遅延
- 27. C++フックws2_32.dll recv
- 28. recv from edge-triggered mode
- 29. epoll recv戻り値
- 30. Python Linux Netlink Recvバッファー
試してみてください。ソケットがブロッキングと非ブロッキングの両方になり、ステータスで別のスレッドが邪魔になることが奇妙です。 linuxでは、クライアント上でsocket()、サーバ上でaccept4()を使用して作成時にソケット非ブロックを設定します。 –
'recv'呼び出しでブロックされたスレッドを非同期で起床しようとしていますか?もしそうなら、 'fcntl'が望みの結果をもたらすとしても、おそらくもっと良い/より安全な方法があります。例えば、 'poll'を使って外部の' recv'ソケット*または*プロセス内通知のためだけに使用される内部専用ソケットをブロックします。 –
@BrianMcFarlandこれはまさに私がやろうとしていたことですが、EJPの答えによればうまくいかないので、私はあなたのアイデアを検討します。ありがとう! –