基本的な indy TCP サーバーと、クライアントがサーバーにメッセージを送信するクライアントがあります。サーバー上のOnConnect
イベントでは、クライアント IP がリスト ボックスに追加されます。クライアントが接続および切断するとリストボックスが更新されるように、クライアントでもこのリストボックスを取得したいと思います。私は Indy コンポーネントに不慣れで、これを行う最善の方法がわかりません。
質問する
2232 次
1 に答える
1
TCP ソケットは両方向で機能します。TCP サーバーは、クライアントがサーバーへの接続に使用したのと同じソケットで、クライアントへのデータ転送を開始できます。
したがって、アクティブな接続のリストをクライアントにプッシュするには、IdTCPServer
すべての接続を繰り返し、Connection.IOHandler.WriteXXX
メソッドを使用して情報を送信するだけです。接続リスト データのブロードキャストと、すべてのクライアントへの新しいチャット メッセージのブロードキャストに技術的な違いはありません。
唯一の要件は、メッセージ タイプを示す "メッセージ タイプ インジケータ" (1 つまたは複数のヘッダー バイト) がデータに必要であり、オプションでメッセージ本文の長さとデータが続くことです。
于 2013-03-26T08:45:48.560 に答える