アクティブな接続を切断する方法はありますか?私はOnConnectを使って接続を拒否することができますが、接続したときだけです。Delphi IdMappedPortTCP質問
2
A
答えて
2
はい、TidMappedPortTCPはTidTCPServerの子孫であるため、基本的にはアクティブなクライアントを切断するためにいくつかの方法があります。あなたは(いくつかの任意の基準に基づいて)OnExecuteイベントイベント内のアクティブなクライアントの接続を解除したい場合たとえば、あなたは、単にイベントハンドラ内でこのどこかの操作を行うことができます
AContext.Connection.Disconnect;
あなたはどこか別のアクティブな接続を切断する必要がある場合(OnExecuteイベントハンドラではない)あなたのコードでは、次のようなアプローチになります。
-
アクティブな接続を保持するリスト(TListまたはいくつかのコレクションクラス)を作成します。
- OnConnectイベントハンドラの内側で、このリストに新しいクライアントを追加します。
- OnDisconnectイベントハンドラの内部で、切断されたクライアントをこのリストから削除します。
このようにすると、特定のクライアントを見つけてその接続オブジェクトにアクセスし、必要なときにDisconnectメソッドを呼び出すことができるアクティブなクライアントのコレクションが常に存在します。
詳細なコードサンプルが必要な場合はお知らせください。
+0
独自の 'TList'接続を維持する必要はありません。 'TIdTCPerver'は既に' Threads'プロパティ(Indy 9以前)または 'Contexts'プロパティ(Indy 10)のどれかを提供しています。 –
関連する問題
- 1. DelphiからC#への質問
- 2. IdMappedPortTCP OnOutboundConnect SSLのサポート
- 3. Prologの質問の質問
- 4. 質問の質問Django
- 5. 質問と代理質問
- 6. 質問:MySQLグループ質問:
- 7. SQLソート/ページング質問質問
- 8. Delphiタイマー問題
- 9. DelphiでのSybase ASEサポートの品質
- 10. TdxComponentPrinter(Delphi)の問題
- 11. ASP.net c#簡単な質問パラメータ質問
- 12. MYSQL:複雑な質問質問
- 13. PHPの場合の質問質問
- 14. MYSQLの質問質問検索
- 15. CakePHP質問作成の質問
- 16. 質問
- 17. 質問
- 18. 質問
- 19. 質問
- 20. 質問
- 21. 質問
- 22. 質問
- 23. 質問
- 24. 質問
- 25. 質問:「
- 26. 質問
- 27. 質問
- 28. 質問
- 29. 質問
- 30. 質問
私は、OnOutboundDataを使ってこのようなゲットーを行う方法を見つけました。 – Bryan