2009-04-30 16 views
1

私の現在のクラスは、基本的なネットワークゲームの作成を計画していますが、C#クライアントを使用してC++サーバーを作成することに決めました。これはおそらく難しい作業だと私は理解していますが、これを実現するためのアドバイスがあるかどうかは疑問でした。C#クライアントを使用してC++チャットサーバーを作成するための記事やアドバイスはありますか?

申し訳ありませんが、これ以上の情報はありません。私たちはちょうど始まっており、私たちが持っている時間内にこれが可能であることを確かめたいと思っています。

答えて

5

これは問題なく動作します。 C#とC++は、TCPとUDPの両方のネットワーク接続をサポートしています。どちらもクライアントまたはサーバーで正常に動作します。

、あなたのデータを送信する方法を決定する、とあなたは、ワイヤを通過するすべてのパケットが/同じようにシリアル化された直列化復元されていることを確認しているために監視する必要があります主な問題。

これは、同じ言語(または少なくともライブラリ)を両側で使用した場合、つまり、サーバーでC++/CLIを使用し、同じマネージド.NETツールを使用している場合データ伝送に取り組んでいます。

0

すべてが1つのWindowsドメインで実行されている場合は、DCOMを検討するとよいでしょう。それ以外の場合は、Webサービス(C++用のSOAPツールキット)またはRESTを使用します。

3

これは大きな問題ではありません。あなたが良いプロトコルを考え出す限りです。ワイヤー上のビットは、それらを解釈するプログラムを書くためにどの言語が使われたか気にしません。私が意味するプロトコルによって

あなたは、 を何が何を言ってたときに、やるべきで、どのようなバック期待する人を明確に理解する必要があります。

は例えば、エコーサーバとそのクライアントが

  • クライアントが話していることを期待するかもしれない最初の
  • 、クライアントの入力の終わりをマークするために、十分に理解識別子があります
  • クライアントが待機します
  • 再度話す前に応答するサーバー
  • サーバーの出力の終了を示すよくわかっている識別子があります。

など。入力識別子の末尾を使用する代わりに、メッセージの長さをメッセージの前に送信した別のクライアントは、プロトコルの非互換性のために元のサーバーでは機能しません。

プロトコルは柔軟性がありますが、プロトコル自体の柔軟性を考慮する必要があります。

2

チャットプロトコルがうまく設計されていれば、誰もが言いましたが、これはまったく問題ではありません。 BinaryFormatterを使ってCLRオブジェクトをワイヤーに直接シリアル化するようなハッキングを使用していた場合にのみ、問題があります。

あなたは既存のプロトコル(IRCなど)やライブラリを使用することをお勧めします許可されます。

0

チャットプログラムの場合は、チャットプロトコルを使用してみてください。

XMPPを調べて、使用できるかどうか、または縮小版を確認してください。他の人が分かったことから始めることは決して悪い考えではありません。少なくともあなたはそれについて気に入らないものを見ることができます。:)

関連する問題