質問: C#は、TCPソケットプログラミングに取り入れる簡単な方法ですか? 私はデータベースを使って小さなメッセージをあるPCから別のPCに送るプログラムに取り組んだ。私がやったことは、共有フォルダにデータベースを置いて、他のPC上のプログラムをパス(それ以下ではない)に接続させ、そこにメッセージを簡単かつ簡単にPCに送ることですネットワーク上で最高の選択肢ではありませんが、それは単なる宿題であり、迅速で汚いアプローチは私にグレードを与えました。 しかし今では宿題が終わったので、私がしたことを改善したいと思います。プログラムの問題は展開段階にあります。共有フォルダー上のデータベースへの直接のパスに関するフォルダ/インストールパスと管理/共有の問題が多すぎます。 だから、ここのstackoverflowの良い人達は私にソケットプログラミングを試してみるように勧めました。私はこれが私のリーグからちょっと外れていると思います。しかし、あなたは決して知りません... また、私は同期と非同期のソケットプログラミングの違いについて認識しています。 1ブロック、もう1ブロックはありません。私が取り組んでいるプログラムはシンプルなターンベースのゲームなので、同期は十分に良いと思っていました。それはあなたのターンでなければ本当に何もできないからです。しかし問題は、プログラムが「応答していない」と扱われていることです。私は非同期を試みましたが、スレッディングに関する問題に遭遇しました。 論理的には、プログラムは単純です。 1つのホスト、1つのクライアント。クライアント接続時に、ホストはデータを送信します。その後、クライアントは自分のデータを受信して送信します。 1人のプレイヤーが敗北するまで、そうする。 私の学校に.NET 2.0しかインストールされていないと申し訳ありません。 WCFなど何もありません。また、C#のWindowsフォームで行う必要がありますので、XNAは出力されています。 だから、私は質問したいと思います...ソケットプログラミングに入る簡単な方法はありますか?助けることができるすべてのガイド/サンプルプロジェクト?研究され、適応される既製のコード? 私が見つけて適応させたサンプルの大部分は、私が十分に考えていたチャットアプリケーションですが、それをモジュール化するだけで簡単に破棄されます。
回答: 私は、 `BinaryFormatter` を使ってソケット上でオブジェクトを移送するために使用できるいくつかのクラスを作った。 私の `BinaryTransport` クラスのいくつかのテストは次のとおりです: http://fadd.codeplex.com/SourceControl/changeset/view/67972#1055425 実際のクラス: http://fadd.codeplex.com/SourceControl/changeset/view/67972#1054822 私はそれらを書いたのはもう少し前です。私は小さなバグに気付いた。しかし、それらを使うか、もっと学ぶためにクラスを勉強するだけです。