このサーバー/クライアント アプリは C# で記述されています。サーバー側に SQL Server があり、クライアントがテーブルを必要とする場合、サーバー アプリケーションに要求を送信し、サーバー アプリケーションは SQL Server に接続してテーブルを取得し、NetworkStream を介してクライアントに送信します。
これは、DataSet XML ストリームを送信するサーバー側のコードです。
using (var networkStream = new NetworkStream(m_workerSocket[0]))
{
dataSet.WriteXml(networkStream);
}
そして、このxmlファイルをバイトとして読み取って文字列に変換し、再度DataSetに変換しています。これはクライアント側のコードです:
TextReader reader = new StringReader(richTextRxMessage.Text);
DataSet dataSet = new DataSet();
dataSet.ReadXml(reader);
DataTable dtProd = new DataTable();
dataGridView1.DataSource = dataSet.Tables[0];
私の質問は、これはクライアント/サーバー間でテーブルを送信する効率的な方法ですか? 10k エントリなどの大きなテーブルでは問題になりますか? それを最適化するにはどうすればよいですか?
また、インスタント メッセージやさまざまな種類のファイルなどのこれらのテーブルを除いて、サーバーとクライアントの間で多くの通信が行われます。では、ファイルや DataSet などの大量のデータを処理および分類するにはどうすればよいでしょうか。たとえば、<DATASET>, <DOCFILE>
送信するデータ型を識別するために、データを送信する前にカスタム文字列タグ (など) を配置する必要がありますか? ありがとうございました。
PS:非同期サーバーとクライアントを使用してデータを送受信しています。