这开始让我很沮丧,因为无论我做什么,我的数据包都会被挤在一起,这使得必须在另一端区分它们很烦人(对象很容易,可变字符串可能会很痛苦)。有没有办法避免这种情况?
这是我正在使用的一些粗略代码(是的,初始化发生在这里,这是粗略的测试代码,对糟糕的编程约定感到抱歉)
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();
正如您所看到的,两个发送一个接一个地发生,并且套接字决定将它们一起发送是最佳的。太好了,但我不想那样。因此在另一端它最终成为
helloDISCONNECT
我需要将两者分开接收,因为它们会自动加载到阻塞队列中,我不想处理对象大小和字符串解析。