2

私は、コンピューターネットワーキングと、あるコンピューターから別のコンピューターへのデータ送信のトピックに不慣れです。現在、私はC#KinectSDKプログラムをLinuxC ++ Opengl/Coviseプログラムと統合する任務を負っています。次に、C ++プログラムは、Kinectによって生成された出力を受信して​​利用します。

異なるプラットフォームや言語で作成されているにもかかわらず、TCP、UDP、またはその他の方法で相互に通信することは可能ですか?それとも、OpenNIでC ++プログラムを拡張するのが最善でしょうか?

現在、Opencover/Coviseをインストールすることは私にとって大きな苦痛です。

4

3 に答える 3

2

もちろん。ネットワークに関しては、サーバーとクライアントがどのプログラミング言語で書かれているかは関係ありません。マルチプレイヤーフラッシュゲームでは、バックエンドでフラッシュサーバーが実行されていると本当に思いますか?

サーバーとクライアントの作成方法、ポートを開いて接続をリッスンする方法、ソケットの操作方法に関する多数の記事をオンラインで見つけることができます。等

于 2011-07-06T04:05:34.003 に答える
1

ネットワーク(TCP / UDP)を介して、言語やプラットフォーム間で確実に通信できます。心配する必要がある最も重要なことは、通信しているデータまたはメッセージをどのようにシリアル化および逆シリアル化するかです。たとえば、あるプラットフォームではリトルエンディアンのバイトオーダーで整数を格納でき、別のプラットフォームではビッグエンディアンのバイトオーダー(ネットワークバイトオーダーとも呼ばれます)を使用できます。さらに、複雑なデータ構造またはオブジェクトは、他のプラットフォームで簡単に解釈できるようにシリアル化する必要があります。たとえば、C#でSystem.Serializationを使用して、もう一方の端で簡単にデコードできることを期待することはできません。Swift、Protocol Buffers、SOAP、POX / RESTなど、クロスプラットフォーム通信用のツールキットまたはAPIは多数あります。これらにはすべて、特定のアプリケーションに多かれ少なかれ適切になる可能性のあるさまざまなトレードオフがあります。

于 2011-07-06T04:15:05.660 に答える
1

私は、コンピューターネットワーキングと、あるコンピューターから別のコンピューターへのデータ送信のトピックに不慣れです。現在、私はC#KinectSDKプログラムをLinuxC ++ Opengl/Coviseプログラムと統合する任務を負っています。

かっこいい、新しいことを学んでおめでとうございます。

異なるプラットフォームや言語で作成されているにもかかわらず、TCP、UDP、またはその他の方法で相互に通信することは可能ですか?

これは、私たち全員が同意する「プロトコル」を持つことの目的です。握手がどのように機能するかとよく似ています。私たちは皆、それがどうあるべきかということに同意しているので、そうあるべきです。電話に出て挨拶するのとは対照的に、挨拶する理由は、メッセージの次のビット(真実)を消化する前に、もう一方の耳にあなたの声の材木とトーンを認識するための音節をいくつか与えるためです。(これが、ネットワーキングでハンドシェイクを行う理由でもあります。誰かと話していることを確認してから、話し始めてください。)

それとも、OpenNIでC ++プログラムを拡張するのが最善でしょうか?

それが割り当ての要件である場合は、それを実行しますが、別のライブラリに追加することが必ずしも最良の答えであるとは思いません。私はもっ​​と単純な仕事に固執するでしょう。

于 2011-07-06T04:24:01.643 に答える