1

基本的な indy TCP サーバーと、クライアントがサーバーにメッセージを送信するクライアントがあります。サーバー上のOnConnectイベントでは、クライアント IP がリスト ボックスに追加されます。クライアントが接続および切断するとリストボックスが更新されるように、クライアントでもこのリストボックスを取得したいと思います。私は Indy コンポーネントに不慣れで、これを行う最善の方法がわかりません。

4

1 に答える 1

1

TCP ソケットは両方向で機能します。TCP サーバーは、クライアントがサーバーへの接続に使用したのと同じソケットで、クライアントへのデータ転送を開始できます。

したがって、アクティブな接続のリストをクライアントにプッシュするには、IdTCPServerすべての接続を繰り返し、Connection.IOHandler.WriteXXXメソッドを使用して情報を送信するだけです。接続リスト データのブロードキャストと、すべてのクライアントへの新しいチャット メッセージのブロードキャストに技術的な違いはありません。

唯一の要件は、メッセージ タイプを示す "メッセージ タイプ インジケータ" (1 つまたは複数のヘッダー バイト) がデータに必要であり、オプションでメッセージ本文の長さとデータが続くことです。

于 2013-03-26T08:45:48.560 に答える