将来のプロジェクトでネットワーク プログラミングを簡素化するためのライブラリを作成しています。これは、将来のほぼすべてのプロジェクトで使用されるため、堅牢で効率的であることを望んでいます。(ところで、サーバーとクライアントの両方が私のライブラリを使用するので、私の質問ではプロトコルを想定していません)31バイトのバッファとセンチネル用に1つを使用するネットワークストリームから文字列を受信する関数を書いています。センチネル値は、EOF であるバイトがある場合、そのバイトを示します。これがあなたの使用または精査のための私のコードです...
public string getString()
{
string returnme = "";
while (true)
{
int[] buff = new int[32];
for (int i = 0; i < 32; i++)
{
buff[i] = ns.ReadByte();
}
if (buff[31] > 31) { /*throw some error*/}
for (int i = 0; i < buff[31]; i++)
{
returnme += (char)buff[i];
}
if (buff[31] != 31)
{
break;
}
}
return returnme;
}
編集:これは、私がやっていることを達成するのに最適な(効率的、実用的など)ですか?