クライアントがコマンドを送信し、サーバーがイベントをトリガーできるように、サーバーと複数のクライアント間の接続を維持する必要があります。サーバーは基本的に音楽プレーヤーであり、クライアントは「Play()」、「Pause()」、「GetPlaylists()」などのコマンドを送信します。サーバー側のサーバーは、クライアントに次のようなことを伝えることができる必要があります。 「SongEnded」または「PlayerPaused」。また、いくつかのデータ(現在の曲、アルバム画像、プレイリストなど)を送受信できる必要があります。自分でソケットを作成し、上記のすべてのシナリオを処理するための独自のプロトコルを作成することもできますが、誰かがすでにこれを行っている可能性があるため、私が本当に必要としているのは、リアルタイム用に作成されたフレームワークです- .NETのサーバーとクライアント間の通信。私' たとえば、xml-rpcを調べましたが、それを使用して「OnClientSend」をどのように処理する必要があるかわかりません。また、私が間違っていなければ、xml-rpcはRESTのように作られています。wcfも調べましたが、経験がないため、どこから始めればよいのか、単純なコンソールアプリでサーバーをホストする方法がわかりません。
重要:クライアントは.NETになれないようにする必要があります。
重要:これは、Java(Android)に接続できる必要があります。
重要:プライマリプラットフォームは、Windows(サーバーとクライアント)とAndroid(クライアント)です。
重要:オーディオのストリーミングは行われません。ただし、画像を送信する必要があります。
解決策のアイデアをいただければ幸いです。また、優れたフレームワークへのリンクや、.NET内にすでに存在するコンポーネントの使用方法の説明があれば、本当に嬉しいです。
[編集] 問題は、ソケットを介してデータを送信するときに、送信したパッケージがサーバーによって同時に読み取られるという保証がないことです(まったく!)。50、100、50バイトの順に送信する場合もありますが、サーバーはそれを200バイトのチャンク、または最初に100、100などとして読み取る場合があります。つまり、バッファを作成し、確実にわかるまでメッセージを読み込む必要があります(これは問題です)私はメッセージ全体を受け取りました(そしてそれ以上は何もありません)。