これは私をかなりイライラさせ始めています。なぜなら、私が何をしようとも、パケットが一緒に押し込まれ、相手側でそれらを区別しなければならないのが煩わしいからです (オブジェクトは簡単ですが、可変文字列は面倒な場合があります)。これを回避する方法はありますか?
これは私が取り組んでいる大雑把なコードです(はい、初期化はここで行われます。これは大まかなテストコードなので、プログラミングの慣習が貧弱で申し訳ありません)
sender.Connect("localhost", 8523);
sender.Client.SendTimeout = 1000;
sender.NoDelay = true;
byte[] buffer = ASCIIEncoding.ASCII.GetBytes(message);
sender.Client.Send(buffer);
buffer = ASCIIEncoding.ASCII.GetBytes("DISCONNECT");
sender.Client.Send(buffer);
sender.Client.Close();
ご覧のとおり、2 つの送信が次々に発生し、ソケットはそれらを一緒に送信するのが最適であると判断します。それは素晴らしいことですが、私はそれを望んでいません。したがって、反対側では、それは
helloDISCONNECT
この 2 つはブロック キューに自動的に読み込まれるため、別々に受信する必要があり、オブジェクトのサイズと文字列の解析を処理したくありません。