0

こんにちは、私はクライアント サーバー ソフトウェアを作成しています。これが最初の質問です。tcp 接続によって送信されたデータをどのように区別するのですか?

さて、私のポイントは次のとおりです。 -tcpconnection によって送信されたデータを特定できます。たとえば、フォームに 3 つのリストビューがあり、最初のリストビューのポイントはクライアントのバイオデータ用です。2番目のリストビューのポイントは*クライアントから取得した値です n 3番目のリストビューのポイントはクライアントから取得した画像です

この場合、処理する必要がある 3 つの主要なポイントがあります。実際、システムには 1 つの接続しかありません。

さて、ここで私は混乱しています..受け取ったデータが最初のリストビュー、2番目のリストビュー、または3番目のリストビューのものであることをどのように判断するのですか? 3 番目のリストビューのデータは、tcpconnection から受け取った画像です。

システム内の 1 つの接続でそれを行うにはどうすればよいでしょうか? 3 番目のリストビューを制御するには、3 つの接続を作成する必要がありますか?

4

1 に答える 1

0

ソケット通信では、クライアントとサーバーの両方が、お互いを理解できるように、合意された同じプロトコルを使用する必要があります。すでに作成されている標準プロトコルは多数あるため、ほとんどのタスクでは、独自のプロトコルを作成する必要はありません。ただし、必要に応じて、いつでも独自のプロトコルを定義できます。プロトコルの性質は明らかに特定のニーズに完全に依存するため、プロトコルがどうあるべきかを伝えることは不可能です。ただし、一般的に、プロトコルで最初に定義する必要があるのは、各完全なメッセージの開始位置と終了位置を知る方法です。これは多くの場合、各メッセージを区切り文字(たとえば、改行、EOF、null)で区切ることによって実現されます。Francoisが推奨するように、代わりに、各メッセージの先頭でメッセージの長さを指定することもできます。各メッセージ内で、

簡単な実装は、各メッセージをJSONまたはXMLドキュメントとして送信することです。そうすることで、メッセージの形式を非常に簡単に定義および変更できます。

ただし、本当に必要な場合を除いて、.NETで提供されている組み込みの通信フレームワークの1つを使用することをお勧めします。単純なタスクの場合、多くの場合、単純なasmxWebサービスで十分です。より複雑なタスクの場合、多くの場合、WCFが適切な選択です。asmx Webサービスは、TCP/IPを介したHTTPを介したSOAPを使用します。WCFはSOAPを使用しますが、下位レベルの接続は構成可能であるため、TCP / IPを使用する必要はありませんが、簡単に使用できます。

于 2012-12-07T16:58:14.913 に答える